在关闭应用程序之前保存值?

Posted

技术标签:

【中文标题】在关闭应用程序之前保存值?【英文标题】:Save values before close the app? 【发布时间】:2012-04-12 16:03:41 【问题描述】:

我想在关闭应用程序之前保存一些值。但我不知道是否必须创建一个新文件(.txt)并将其保存;或者我可以更改 strings.xml 文件,当我下次打开应用程序时,保存的值将是正确的保存值,或者将是我在首次使用之前定义它们的 walues。我知道存在从 strings.xml 文件读取的非常简单的方法,所以我认为必须有一种方法可以在关闭之前在此文件中设置值(但我在网上找不到)。感谢您提供任何示例或您的建议和解释。

【问题讨论】:

【参考方案1】:

android 提供 SharedPreferences 类来帮助您保存简单的应用程序数据。 您可以使用 SharedPreferences 类来保存配置信息或您想要的任何内容。 当您将应用程序置于后台或关闭它时,将调用 onStop()。你可以重写它来实现你想要的。

SharedPreferences 类的使用非常简单:

第 1 步:使用 SharedPreferences 对象编写

//Create a object SharedPreferences from getSharedPreferences("name_file",MODE_PRIVATE) of Context
private SharedPreferences pref;
pref = getSharedPreferences("info", MODE_PRIVATE);
//Using putXXX - with XXX is type data you want to write like: putString, putInt...   from      Editor object
Editor editor = pref.edit();
editor.putString("key5","value5");
//finally, when you are done saving the values, call the commit() method.   
editor.commit()

第二步:使用 SharedPreferences 对象读取

//get SharedPreferences from getSharedPreferences("name_file", MODE_PRIVATE)
SharedPreferences shared = getSharedPreferences("info",MODE_PRIVATE)
//Using getXXX- with XX is type date you wrote to file "name_file"
 String string_temp = shared.getString("key5");

MODE_PRIVATE 常量表示共享首选项文件只能由创建它的应用程序打开。

共享首选项文件以 XML 文件形式保存在 /data/data/<package_name>/shared_prefs 文件夹中

【讨论】:

文档说不要依赖 onStop()onDestroy() 来保存您的数据,因为这些方法可能永远不会被调用。【参考方案2】:

在您的活动被覆盖的 onStop() 方法中执行您的保存操作。 至于在哪里/如何保存:按照这里的例子:

http://developer.android.com/guide/topics/data/data-storage.html#pref

【讨论】:

【参考方案3】:

您可以使用偏好设置。查看本教程和示例

http://www.vogella.com/articles/Android/article.html#preferences

如果必须在多个活动之间共享数据,则使用共享首选项

【讨论】:

【参考方案4】:

最好使用共享偏好来保存数据,但如果您认为自己保存了更多数据,那么最好使用数据库或将其保存为文件。

参考这个LINK

【讨论】:

以上是关于在关闭应用程序之前保存值?的主要内容,如果未能解决你的问题,请参考以下文章

在 SWIFT 中关闭 segue 之前保存变量

在swift 3中保存变量和布尔值[关闭]

关闭xamarin后保存android应用字符串值

在退出 C++ 时保存值 [关闭]

使用用户默认值保存数据

为 Winform 创建保存和加载功能 [关闭]