Почему PendingIntent вызывает onCreate, даже если установлен FLAG_NO_CREATE

1

Одна из моих работ запускает AsyncTask и добавляет текущее уведомление в область уведомлений. Это уведомление получает обновления из AsyncTask.

Я сделал это, чтобы пользователи могли покинуть действие с помощью кнопки "Домой" и получать обновления прогресса во время продолжительной работы.

Нажатие на уведомление должно вернуть пользователя для этого действия. Проблема в том, что, несмотря ни на что, кажется, что старая активность никогда не используется снова, а инициируется новым (пока AsyncTask все еще работает). Метод onCreate этого действия вызывается каждый раз при нажатии на уведомление.

Я попытался использовать параметры FLAG_NO_CREATE и FLAG_UPDATE_CURRENT, но это не имеет никакого значения.

Каков правильный способ справиться с этой ситуацией? Я разрабатываю для уровня API 4.

Теги:
notifications
android-pendingintent

1 ответ

1
Лучший ответ

Я сделал это, чтобы пользователи могли покинуть мероприятие с помощью дома и все еще получают прогресс обновления в течение длительного времени операции.

Похоже, вы должны использовать сервис.

Проблема в том, что независимо от того, что кажется, что старая деятельность никогда снова используется, но инициировал новый

Да. Android, вероятно, убил вашу активность. У вас абсолютно БЕСПЛАТНО гарантия того, что происходит с вашей деятельностью после вызова onStop.

Я разрабатываю для уровня API 4

Любая конкретная причина, по которой вы пишете 4? Это довольно старые и большинство телефонов теперь доступны на 2.0.

  • 0
    Документы Android четко заявляют, что с установленным флагом FLAG_NO_CREATE никогда не будет создано новое действие. Но это то, что происходит, так что это не отвечает мифу здесь ;-)
  • 0
    Вы читаете это неправильно. Этот флаг не для начала деятельности. 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.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню