2016-07-09 4 views
9

Я хочу показать Notification, когда мое приложение будет удалено из списка последних приложений.Как получить уведомление, когда приложение закрыто в Android

Я пробовал поставить код для этого в onStop() и onDestroy(), но не работает. onStop() вызывается, как только приложение закрыто (хотя оно все еще находится в списке последних приложений).

Может ли кто-нибудь сказать, какой метод вызывается, когда приложение удаляется из списка последних приложений или каким-либо образом, в котором эта потребность может быть выполнена?

ответ

11

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

Чтобы получить уведомление, когда это произойдет, вы можете запустить липкий Service и переопределить его метод onTaskRemoved().

С documentation из 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=".yourpackagename.StickyService" /> 

И запустить его (например, в onCreate()):

Intent stickyService = new Intent(this, StickyService.class); 
startService(stickyService); 
+0

Он отлично работает ! –

Смежные вопросы