我ActivityLifecycleCallbacks在班级内的私人班级中实现了Application。
如果使用“主页”按钮或“后退”按钮,则将调用生命周期onStop()和onPause()方法。如果我通过从后台刷出来杀死活动,onDestroy()则不会调用方法。下次我开始活动时会调用它。我正在使用moveTaskToBack(true)Back Press。
从后台滑出时,问题一定是什么,应该调用哪种生命周期方法?
从文件中onDestroy():
注意:不要指望这个方法被调用作为保存数据的地方!例如,如果一个活动正在内容提供者中编辑数据,那么这些编辑应该在 onPause() 或 onSaveInstanceState(Bundle) 中提交,而不是在此处提交。此方法通常用于释放与活动关联的线程等资源,以便被销毁的活动不会在其应用程序的其余部分仍在运行时留下这些东西。在某些情况下,系统将简单地终止活动的托管进程,而不会在其中调用此方法(或任何其他方法),因此不应使用它来执行在进程消失后打算保留的事情。
这种情况是将应用程序从最近的任务列表中滑出。
查看此答案,了解如何在应用程序从“最近”中滑出时获得通知。
我记得在 StackOverflow 上读过类似的问题。这是最重要的答案:
处理从任务管理器退出的应用程序 处理从任务管理器退出的应用程序
不幸的是,没有一个好的答案来处理这种情况。如果应用程序被强制终止,则不一定会调用 onDestroy 方法。根据文档。
注意:不要指望调用此方法作为保存数据的地方!例如,如果某个活动正在内容提供程序中编辑数据,则这些编辑应在 onPause() 或 onSaveInstanceState(Bundle) 中提交,而不是在此处提交。
如果可以的话,请在 onPause() 方法中进行清理。为了让用户到达该屏幕来终止应用程序,它必须已进入后台,因此 onPause() 将会被调用。(参见文档)
| 归档时间: |
|
| 查看次数: |
4092 次 |
| 最近记录: |