Отменить уведомление об удалении приложения из панели многозадачности
Я управляюпРОДОЛЖАЕТСЯ уведомление из моего приложения (не из службы).
Когда я убиваю приложение из диспетчера задач с "Конец" кнопка,Уведомление исчезнет.
Когда я удаляю приложение из панели многозадачности, приложение убивается, ноуведомление остается.
Мои вопросы:
Как отловить это событие, чтобы очистить уведомление?Что происходит при удалении приложения из панели многозадачности? Приложение уничтожено, но процесс остался жив? Это нормально?Как обновление:
Все мои действия расширяют класс MyActivity (который расширяет Activity) методами:
@Override protected void onCreate(Bundle state) {
super.onCreate(state);
((MyApplication) getApplication()).onActivityCreate(this, state);
}
@Override protected void onDestroy() {
super.onDestroy();
((MyApplication) getApplication()).onActivityDestroy(this);
}
И мое приложение расширяет класс MyApplication (который расширяет Application) с помощью методов:
private List activities = new ArrayList();
protected final void onActivityCreate(Activity activity, Bundle state) {
if(activities.isEmpty() && state == null) {
onStart();
}
activities.add(activity);
}
protected final void onActivityDestroy(Activity activity) {
activities.remove(activity);
if(activities.isEmpty() && activity.isFinishing()) {
onExit();
}
}
protected void onStart() {
// some code
}
protected void onExit() {
// some code
notificationManager.cancel(NOTIFICATION_ID);
}
activities
список всех запущенных действий
Это'не самый простой механизм, но он мне нужен
Должен ли я использовать сервис вместо этого?
Как новое обновление:
В моем методе onExit (), если я регистрирую отладочное сообщение, чтобы знать, что происходит следующим образом:
public void onExit() {
for(int i = 0; i < 100; i++) {
Log.d(TAG, "onExit");
}
}
небольшое количество журнала появляется один раз на два, а не на все (например: 13/100)
Итак, я понимаю, что удаление приложения из многозадачной панели вынуждает убивать приложение, не дожидаясь, пока методы close завершатся как следует ... Но почему бы не обработать ?!
Как я могу заставить прекратить правильно?