0

我有一个包含所有静态对象和函数的抽象类,用于在执行会话期间存储应用程序的一些全局数据。

一旦我在 ICS 和更高版本中重新启动应用程序,系统的设置 ALWAYS_FINISH_ACTIVITIES 设置为 true,所有数据都会重置为 null。

在应用程序重新启动时维护数据的更好方法是什么?

问候,

安卓 IT

编辑我的问题:我知道 Sharepreference 可能是一个更好的选择,但我不想为应用程序的多个会话存储数据,而且我存储的数据非常庞大。问候, Android IT

4

6 回答 6

1

每个 Android 应用程序都在一个依赖进程中运行。当应用程序成为后台并且系统需要内存时,应用程序的进程可能会被系统杀死。在这种情况下,当应用重新启动时,静态对象会丢失。

我认为使用 SharedPreference 来维护数据是一种更好的方法。

于 2012-10-25T10:02:16.637 回答
0

如果没有太多数据,您可以将它们保存在SharedPreferences

您可以使用PreferenceManager.getDefaultSharedPreferences()访问它们

于 2012-10-25T10:03:47.163 回答
0

一旦应用程序退出或销毁,将删除所有数据。如果您想在重新启动后访问,您应该根据您的要求保存数据。像本地或网络。它加深了你。现在您可以优先存储数据,以便在重新启动应用程序后有用。我认为这对你更好:How to use SharedPreferences in Android to store, fetch and edit values

于 2012-10-25T10:08:24.033 回答
0

您可以使用http://developer.android.com/reference/android/content/SharedPreferences.html存储数据SharedPreferences

于 2012-10-25T09:59:48.477 回答
0

将数据存储在本地存储上似乎是合适的:http: //developer.android.com/training/basics/data-storage/index.html

于 2012-10-25T09:59:57.570 回答
0

您可以使用 XML 文件将数据存储在本地。您可以在启动时使用 DOM Reader 读取 XML 文件

http://www.ibm.com/developerworks/library/x-android/

如果您有大量数据,您可以使用 SQLite 数据库

http://developer.android.com/training/basics/data-storage/databases.html

于 2012-10-25T10:01:43.530 回答