如果应用程序在暂停时被清除,则不会调用onDestory

时间:2017-09-30 06:13:02

标签: android

enter image description here

我在我的应用onDestroy MainActivity中覆盖了Acards

如果我在我的应用暂停时(当我最近使用其他应用时)清除所有进程(点击Clear all),则不会调用onDestroy

当我的应用暂停并清除时,如何调用onDestroy

2 个答案:

答案 0 :(得分:1)

当您从最近清除app时,整个过程将被终止,并且与该过程相关联的所有线程也将被终止。因此,您无法创建从最近清算应用程序的回调。

答案 1 :(得分:0)

基本上,从来没有保证会调用onDestroy(),在某些情况下,你的app等进程会被直接杀死,无论如何都会绕过方法调用。

根据此链接: https://developer.android.com/reference/android/app/Activity.html#onDestroy%28%29

  

protected void onDestroy()

     

在API级别1中添加在活动开始之前执行任何最终清理   销毁。这可能是因为活动正在结束   (有人称之为finish(),或者因为系统是暂时的   销毁此活动实例以节省空间。您可以   使用isFinishing()方法区分这两种情况。

     

注意:不要指望将此方法称为保存地点   数据!例如,如果活动正在编辑内容中的数据   提供者,这些编辑应该在onPause()或   onSaveInstanceState(Bundle),不在这里。这种方法通常是   实现释放资源,如与线程相关联的线程   活动,以便被破坏的活动不会留下这样的东西   当其余的应用程序仍在运行时。有   系统将简单地杀死活动的主机的情况   进程中没有调用此方法(或任何其他方法),所以它   不应该被用来做那些打算留下来的东西   过程消失后。

但是,您可以将代码移至onPause()或onStop()