#android #android-activity #android-asynctask
#Android #android-активность #android-asynctask
Вопрос:
Я запускаю AsyncTask из книжной ориентации, затем я изменил ориентацию на альбомную. В данный момент мне нужна ссылка на эту запущенную AsyncTask, чтобы я мог отменить эту задачу.
На самом деле это ситуация:
@Override
public void onClick(View v) {
switch(v.getId()) {
case R.id.startBtn:
sampleTaskOne = new SampleAsyncTaskOne(this, sampleTaskCallbacks);
sampleTaskOne.execute();
break;
case R.id.stopBtn:
sampleTaskOne.cancel(true);
sampleTaskOne = null;
default: break;
}
}
Прямо сейчас после изменения ориентации, если я нажму stopBtn, возникнет исключение NullPointerException, потому что sampleTaskOne не инициализирован. Итак, как я могу сохранить ссылку на выполнение AsyncTask?
Пожалуйста, не используйте фрагмент. Не упоминайте это как дубликат «Как использовать asynctask при изменении ориентации» или что-то в этом роде. Я знаю несколько альтернативных решений, но я точно хочу сохранить ссылку на эту AsyncTask.
Ответ №1:
Вы можете сохранить sampleTaskOne
как статическую переменную и передать ее null
, когда она была завершена или отменена.
Комментарии:
1. что, если мне нужно отслеживать несколько асинхронных задач?