Похоже, что здесь есть несколько отдельных проблем.
У меня есть проблема, когда мне требуется загрузить существующее действие, которое уже открывается при нажатии на действие, моя проблема заключается в том, что когдапри нажатии на уведомление делается попытка создать новое действие, вызывая метод onCreate и т. д.Как мне просто открыть заново только открытую (тогда запущенную в фоновом режиме) активность?
Итак, если я вас правильно понимаю, пользователь просматривает вашу активность, затем он уходит, а затем возвращаетсячерез уведомление.В этом сценарии onCreate
обычно не вызывается снова, если приложение не самоубийственно, не установлено android:noHistory
или не было уничтожено системой для восстановления памяти.Если вы пытаетесь написать действие, которое не будет убито, вы делаете что-то не так, и вам, вероятно, следует использовать Сервис: http://developer.android.com/reference/android/app/Service.html
Также, как я должен решить проблему Androidможет убить фоновую активность, которую я намереваюсь открыть уведомлением?
Проблема здесь со словами "фоновая активность".Вы должны предположить, что любая активность может быть уничтожена, если пользователь собирается сделать что-то еще.Если вам нужен код для продолжения работы независимо от того, что делает пользователь, вы должны использовать службу (см. Выше).
Еще одна большая проблема заключается в том, что отображаемое пользователем уведомление вручную переходит кприложение и выполняет необходимые действия, что делает уведомление бесполезным, а затем, когда пользователь нажимает на уведомление, как мне определить, что пользователь уже выполнил задачу, которую должно выполнить уведомление?
Когда вашактивность запускается, она может просто отменить любые уведомления.Возьмите экземпляр с NotificationManager
по getSystemService()
и позвоните .cancel(NOTIFICATION_ID)
.