Java 从单例切换到应用程序对象,仍然得到空指针异常

Java 从单例切换到应用程序对象,仍然得到空指针异常,java,android,Java,Android,我从单一对象切换到应用程序对象来存储应用程序数据,因为据我所知,我的缓存数据在应用程序对象中保存的可能性比在常规单一对象中保存的可能性大得多 然而,我仍然有一些问题。如果我切换到其他几个应用程序,并返回到我的应用程序,则在我加载getApplication()之后调用加载我的事件会引发空指针异常 我发现更奇怪的是,我的原始意图中的bundle仍然处于活动状态,并且在应用程序切换中幸存下来 我如何保存数据,这些数据不一定需要以永久的方式持久化(如果整个应用程序被终止并重新加载,它将从Web服务中下

我从单一对象切换到应用程序对象来存储应用程序数据,因为据我所知,我的缓存数据在应用程序对象中保存的可能性比在常规单一对象中保存的可能性大得多

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

我发现更奇怪的是,我的原始意图中的bundle仍然处于活动状态,并且在应用程序切换中幸存下来


我如何保存数据,这些数据不一定需要以永久的方式持久化(如果整个应用程序被终止并重新加载,它将从Web服务中下拉并重新开始,这就是为什么我认为切换到应用程序对象是可以的)

您是否希望保留与用户将应用程序放在后台然后带回的时间相关的数据

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

)

)

然后,您可能需要定义一个可打包的接口

关于您希望存储的类

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


,int)

我考虑过SaveInstanceState和SharedReferences,因为我已经在那里存储了一些东西(比如facebook令牌),但是我要处理的是一个HashMaps数组列表,它有点大,虽然可以做到,但将它放入一个包或SharedReferences中并不简单(我知道较新的sdk版本允许存储集合,但我的目标是回到第8级)。如果有一种简单的方法可以转换为这两种类型,我很乐意听到,我对Java非常陌生。这取决于“相当大”的大小,但有时为了在圆孔中存储方针,我会将其编组为XML或JSON并作为字符串值存储。JSON稍小一些,您可以使用类似于Android下工作的Jackson的东西。我怀疑Jackson可能已经支持HashMaps的ArrayList。这看起来像是一个很棒的库,谢谢您!t我不理解的是:通过切换到应用程序对象,它不应该在我的应用程序生命周期中一直存在吗?我的应用程序从“强制停止”状态恢复良好,但当移动到后台(以及打开的许多其他应用程序)然后重新打开时,它失败了,(如果移动到后台并在中间只打开1或2个应用程序的情况下重新打开,它会起作用)Tom-也许发布一段源代码可能有助于解决这个特定问题。