如何使用onTerminate()方法,android?

don*_*ias 5 android

我正在尝试使用保存一些变量SharedPreferences.在我的onCreate()方法中,我使用了初始化我的变量SharedPreferences,并且我想在应用程序结束时存储这些变量.我将此代码放在onTerminate()方法上,但永远不会存储变量.我认为该onTerminate()方法永远不会被调用,因为我也看到了对这种方法的评论// not guaranteed to be called.那么如何在我停止应用程序之前保存变量的状态呢?我知道怎么样,我只是不知道在哪里放置我的代码.

Dav*_*ser 5

实际上,为了安全起见,你应该将内容保存在onPause()中,因为(至少在3.0之前)你的进程在调用onPause()后可能被操作系统杀死.这意味着可能会或可能不会调用onStop()和onDestroy().

在任何情况下,都不能保证会调用onDestroy().如果操作系统决定终止你的进程,它就不会在任何活动上调用onDestroy().


Com*_*are 5

我希望当应用程序结束时存储这个变量。

这是行不通的,因为当“应用程序结束”时您无法获得控制权。

任何一个:

  • 当数据改变时保存数据,或者

  • 当用户告诉您时保存数据(例如,通过某种“保存”操作栏项目),或者

  • onPause()当您修改数据的活动被调用时保存数据


RyP*_*ope 5

你不应该使用这个功能。

此方法适用于模拟过程环境。它永远不会在生产 Android 设备上被调用,在生产 Android 设备上,只需杀死进程即可将其删除;执行此操作时不会执行任何用户代码(包括此回调)。

来源