区分Android杀死应用程序和用户在最近的应用程序列表上滑动它

Nik*_*ola 11 android android-lifecycle android-activity

我正在开发一个项目,当我在一个特定的Activity上时,我们会显示一个本地粘性通知.当应用程序最小化时也应如此.我必须完成的是在应用程序被杀死时删除本地通知(由于内存不足或由用户通过Android,从最近的应用列表中滑动).

通常onDestroy会在Android使用Activity打开一些空间时调用.在其中一种情况下这很好,但是从最近的应用程序列表中滑动应用程序不会调用onDestroy并且粘滞通知保持不变.

我做的是,我实现了一个空的服务,它将强制onDestroy应用程序被杀死(刷卡和系统杀死),这样我就可以删除我的通知.

但是,我想要做的是区分滑动和系统杀死.

这甚至可能吗?

Dav*_*ser 13

一般来说,如果Android想要杀死你的应用程序,因为它已经在后台工作太久(或者因为它想要回收资源),Android将只是简单地杀死托管你的应用程序的操作系统进程.这会不会致电finish()onDestroy()任何活动或服务的组件."从最近任务列表中滑动"的行为随着时间的推移而发生变化,并且在不同的Android版本中有所不同.有人应该写一本关于这个的书:-(

  • 不,抱歉.文档错了.Android不会杀死活动.它会杀死整个过程.相信我. (7认同)
  • 从OnDestroy()的文档中:可能发生这种情况,因为活动正在结束(有人在其上称为finish(),或者是因为系统暂时销毁了该活动实例以节省空间。)。我的活动_应该_调用`onDestroy()` (2认同)
  • 在“ Activity”的文档中,有描述生命周期回调的表格。在该部分中,您还将看到:_“注意上表中的”可杀死“列-对于那些标记为可杀死的方法,该方法返回后,承载活动的进程可能会随时被系统杀死。无需执行另一行代码。” _ Android可以在调用`onPause()`(Android版本<3.0)或`onStop()`(Android版本> = 3.0)后随时终止您的进程。 (2认同)

小智 0

通过从最近的任务列表中滑动,仅从最近的任务中删除。在 android 5.0 之前,它也称为 onDestroy 。可能是您在 api 级别 20 以上的设备上遇到问题。系统kill通常不能在正常的android Activity生命周期中执行。它刚刚完成后按事件的活动。


归档时间:

查看次数:

10899 次

最近记录:

8 年,7 月 前