Как получить уведомление, когда приложение закрыто в Android
Я хочу показать Notification
когда мое приложение будет удалено из списка последних приложений.
Я пытался поместить код для этого в onStop()
а также onDestroy()
но ни один не работает. onStop()
вызывается, как только приложение закрывается (хотя оно все еще находится в списке последних приложений).
Может ли кто-нибудь сказать, какой метод вызывается, когда приложение удаляется из недавнего списка приложений, или каким-либо способом, которым эта потребность может быть выполнена?
1 ответ
Когда вы проводите приложение из последних, его задача мгновенно убивается. Методы жизненного цикла не будут вызываться.
Чтобы получить уведомление, когда это произойдет, вы можете начать придерживаться Service
и переопределить его onTaskRemoved()
метод.
Из документации onTaskRemoved()
:
Это вызывается, если служба в данный момент работает, и пользователь удалил задачу, которая поступает из приложения службы.
Например:
public class StickyService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onTaskRemoved(Intent rootIntent) {
Log.d(getClass().getName(), "App just got removed from Recents!");
}
}
Регистрация в AndroidManifest.xml:
<service android:name=".StickyService" />
И начать его (например, в onCreate()
):
Intent stickyService = new Intent(this, StickyService.class);
startService(stickyService);