我使用我的Android应用程序的应用程序Context作为我的应用程序的“当前状态”信息的存储区域。
我发现在现场,有些情况下某些人的设备上的信息消失导致各种NullPointerExceptions,因为我希望当应用程序恢复并开始重建必要的活动时数据就在那里。
这通常发生在用户点击“Home”,做其他事情,然后最终回到应用程序中时 - 它会尝试回到之前的状态,但是应用程序Context已经神秘地丢失了以前保存的所有状态信息(在我的例子中,有几个整数和几个字符串)。
我知道这是一个非常模糊的问题,但有没有任何情况(除了用户使用“后退”完全退出应用程序),即使应用程序没有终止,应用程序上下文也会完全被破坏? / p>
是否有更好的方法来维护持久状态信息?
答案 0 :(得分:4)
是的,如果用户离开应用程序一段时间,可能会杀死并重新启动应用程序。您可能希望阅读processes and lifecycles上的此部分。
您应找到一个将状态保存到持久存储的合适位置。如果它只是几个整数和字符串,那么在它们改变时将它们保存到共享首选项应该非常简单。请参阅data storage - shared preferences。