我想从最近的应用列表中移除我的应用时显示Notification
。
我已尝试在onStop()
和onDestroy()
中添加代码,但两者均无效。应用程序关闭后会立即调用onStop()
(尽管它仍在最近的应用列表中)。
当应用程序从最近的应用程序列表中删除或以何种方式可以完成此需求时,是否可以告诉任何人调用哪种方法?
答案 0 :(得分:13)
由于奥利奥引入了background service limitations,这个答案已经过时,很可能无法在API级别为26+的设备上使用。
原始答案:
当您将应用程序从“最近”中移出时,其任务会立即被杀死。不会调用生命周期方法。
要在发生这种情况时收到通知,您可以启动粘性Service
并覆盖其onTaskRemoved()
方法。
来自onTaskRemoved()
的{{3}}:
如果服务当前正在运行且用户有,则调用此方法 删除了来自服务应用程序的任务。
例如:
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);