1

我从单例切换到应用程序对象来存储应用程序数据,因为据我了解,与常规单例相比,我的缓存数据在应用程序对象中存活的机会要大得多。

但是我仍然有问题。如果我切换到其他几个应用程序,然后回到我的应用程序,在我加载后加载我的事件的调用会getApplication()引发空指针异常。

我发现更奇怪的是,我最初意图的捆绑包仍然处于活动状态并且在应用程序切换中幸存下来。

我如何保留数据,不一定需要以永久方式持久保存(如果整个应用程序被杀死并重新加载,它只会将其从 web 服务中拉下来并重新开始,这就是为什么我想切换到一个应用程序对象就可以了)

4

1 回答 1

0

您是否希望保留与您的应用程序何时被用户放入后台然后又被带回相关的数据?

也许重写 onSaveInstanceState 和 onRestoreInstanceState 方法,以及从包中存储和恢复是您正在寻找的。

http://developer.android.com/reference/android/app/Activity.html#onRestoreInstanceState(android.os.Bundle )

http://developer.android.com/reference/android/app/Activity.html#onSaveInstanceState(android.os.Bundle )

然后你可能想定义一个 Parcelable 接口

http://developer.android.com/reference/android/os/Parcelable.html

在您希望存储的类上。

或者,您也可以使用共享首选项 api。

http://developer.android.com/reference/android/content/Context.html#getSharedPreferences(java.lang.String , int)

于 2012-12-12T15:31:50.217 回答