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

时间:2013-02-07 17:03:41

标签: android

我想知道,何时是将应用程序设置保存到SharedPreferences的合适时间。我们应该在onStoponDestroy期间执行此操作吗?我意识到这两种方法都有其优点和缺点。

的onStop

如果用户意图没有退出应用程序,将应用程序设置保存到SharedPreferences似乎是多余的。他只是按回家(onStop叫) - > 长按家 - > 再次选择应用程序重新启动应用程序

的onDestroy

用户可以通过按home 来杀死 - > 长按家 - > 在应用程序上向左滑动以杀死它。如果用户以这种方式退出应用程序,我意识到虽然该应用程序已杀死,但未调用onDestroy。因此,不会保存应用程序设置。

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

2 个答案:

答案 0 :(得分:15)

最好在进行更改后立即拨打commit(),或使用onPause()方法。这可以确保您的更改几乎保存在所有方案中,但未捕获的应用程序崩溃异常除外。

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

答案 1 :(得分:0)

我认为Android文档几乎解释了你应该如何评论或持久保存用户的任何数据:

  

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

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