何时将应用程序设置提交给SharedPreferences(onStop或onDestroy)

我想知道,什么时候将我们的应用程序设置保存到SharedPreferences是合适的时间。 我们应该在onStoponDestroy做到这一点吗? 我意识到两种方法都有其优点和缺点。

的onStop

如果用户意图不是退出应用程序,将应用程序设置保存到SharedPreferences似乎是多余的。 他只是按住home (onStop调用) - > 长按home - > 重新启动应用程序,然后再次选择应用程序

的onDestroy

用户可以通过按home (onStop调用) - > 长按home - > 在应用程序左侧滑动来杀死应用程序来杀死应用程序 。 如果用户通过这种方式退出应用程序,我意识到虽然应用程序被onDestroyonDestroy并未被调用。 因此,应用程序设置未被保存。

那么,在onStoponDestroy期间保存应用程序设置会更好吗?


最好在做出更改之后或者在onPause()方法中调用commit() 。 这可确保您的更改保存在几乎所有情况下,除了导致应用程序崩溃的未捕获异常外。

另外,您应该注意, onStop()onDestroy()都不能保证被调用,特别是在Android内存不足的情况下。 但是, onPause()几乎总是被调用。


我认为,Android应用程序的文档解释说明了你应该在用户的任何数据上进行联合或持久化:

onPause()是您处理用户离开活动的地方。 最重要的是,此时用户所做的任何更改都应该被提交(通常发送给持有数据的ContentProvider)。

http://developer.android.com/reference/android/app/Activity.html

链接地址: http://www.djcxy.com/p/90801.html

上一篇: When to commit application settings to SharedPreferences (onStop or onDestroy)

下一篇: Android destroying activities, killing processes