我注意到当我的应用程序遇到错误时,我的应用程序上下文变量的值也会重新初始化为其原始值(而不是更新的值)。根据我的理解,这是因为重新创建了应用程序。
如何在发生应用程序错误时保存和恢复应用程序上下文变量的值?如果您能够在遇到错误时对应用程序的背景情况进行更详细的解释,我也会很高兴。
注意:我读到其中一个解决方案是使用SharedPreferences。但是,即使应用程序已经死亡,SharedPreferences也会保存数据。我不想在应用程序死机时保存数据。我只想在应用程序处于活动状态或后台时保存数据。
答案 0 :(得分:3)
如何在发生应用程序错误时保存和恢复应用程序上下文变量的值?
首先,没有未处理的异常。
其次,不要依赖静态数据成员或自定义Application
子类实例。在许多情况下,您的流程将被终止,并且这些值将消失。它们应该用于持久内容的内存缓存,而不是其他内容。
有时,未处理的异常确实是意料之外的,但这些异常应该很少并且通常与特定设备相关联(例如,用完存储空间)。其他所有内容都代表了您应用中的错误,您必须修复错误。