Одна из моих работ запускает AsyncTask
и добавляет текущее уведомление в область уведомлений. Это уведомление получает обновления из AsyncTask
.
Я сделал это, чтобы пользователи могли покинуть действие с помощью кнопки "Домой" и получать обновления прогресса во время продолжительной работы.
Нажатие на уведомление должно вернуть пользователя для этого действия. Проблема в том, что, несмотря ни на что, кажется, что старая активность никогда не используется снова, а инициируется новым (пока AsyncTask
все еще работает). Метод onCreate
этого действия вызывается каждый раз при нажатии на уведомление.
Я попытался использовать параметры FLAG_NO_CREATE
и FLAG_UPDATE_CURRENT
, но это не имеет никакого значения.
Каков правильный способ справиться с этой ситуацией? Я разрабатываю для уровня API 4.
Я сделал это, чтобы пользователи могли покинуть мероприятие с помощью дома и все еще получают прогресс обновления в течение длительного времени операции.
Похоже, вы должны использовать сервис.
Проблема в том, что независимо от того, что кажется, что старая деятельность никогда снова используется, но инициировал новый
Да. Android, вероятно, убил вашу активность. У вас абсолютно БЕСПЛАТНО гарантия того, что происходит с вашей деятельностью после вызова onStop.
Я разрабатываю для уровня API 4
Любая конкретная причина, по которой вы пишете 4? Это довольно старые и большинство телефонов теперь доступны на 2.0.
FLAG_NO_CREATE
никогда не будет создано новое действие. Но это то, что происходит, так что это не отвечает мифу здесь ;-)Flag for use with getActivity(Context, int, Intent, int), getBroadcast(Context, int, Intent, int), and getService(Context, int, Intent, int): if the described PendingIntent does not already exist, then simply return null instead of creating it.