Ожидание завершения AsyncTask перед уничтожением тревоги BroadcastReceiver - PullRequest
0 голосов
/ 13 октября 2018

У моего приложения Android есть некоторые проблемы с повторяющимся сигналом, который я установил.AsyncTask иногда занимает 5-15 секунд для завершения, и в верхних диапазонах задача заканчивается не завершением, потому что система Android заканчивается завершением onReceive в классе получателя до завершения задачи.

Есть ли способЯ могу держать будильник, пока задача не будет завершена, или это плохая практика?

Вот onReceive моего класса намерений:

@Override
public void onReceive(Context context, Intent intent)
{
    getPrefs(context);
    color = (Color.parseColor("#FFFF4500"));
    instances = 0;

    backgroundExecute(context); //5-15 sec, sometimes doesn't get to finish

}

1 Ответ

0 голосов
/ 14 октября 2018

Поэтому я немного прочитал документацию BroadcastReceiver на странице Google и обнаружил, что использование goAsync() в моем onReceive будет поддерживать трансляцию до тех пор, пока AsyncTask не вернет результат.

Найдено здесь: https://developer.android.com/reference/android/content/BroadcastReceiver.html#goAsync()

...