【发布时间】:2016-01-07 04:25:24
【问题描述】:
当用户通过从所有打开的应用程序中滑动应用程序或按下后退按钮来关闭应用程序时,我有一些资源需要清理(在服务器端)。在上述这些情况下,我的 onDestroy 没有被调用。所以我的问题是
以上场景需要哪种回调方法,为什么?
【问题讨论】:
标签: android android-activity activity-lifecycle
当用户通过从所有打开的应用程序中滑动应用程序或按下后退按钮来关闭应用程序时,我有一些资源需要清理(在服务器端)。在上述这些情况下,我的 onDestroy 没有被调用。所以我的问题是
以上场景需要哪种回调方法,为什么?
【问题讨论】:
标签: android android-activity activity-lifecycle
最好放在onPause 方法中,因为onDestroy不保证总是被调用,尤其是在你的滑动关闭的情况下。而且,onStop 也不保证在内存不足的情况下被调用。
Official document about onDestroy 也表示如下;
注意:不要指望调用此方法作为保存数据的地方!
【讨论】:
onPause 和onResume 中发送意图数据(一种isRunning 存储的布尔值)。 Activity 和 Service 之间的通信不在本主题范围内,但此链接可能会有所帮助:stackoverflow.com/q/20594936/361100