我们正在开发的Android应用使用dataManager
对象来处理与所需API和其他相关服务的通信。它是在MainActivity
中创建的,然后传递给我们拥有的几个片段,以便它们也可以使用它。最近我们遇到了麻烦,其中一个片段试图访问dataManager
,但它已经莫名其妙地成为null
。这似乎总是在另一个事件之后发生,这在Android Studio日志中显示:
08-12 15:59:15.296 822-822/<name of our app> I/PhoneWindow﹕[generateLayout] setColorNavigationBar => color=0x ff000001 08-12
08-12 15:59:15.296 822-822/<name of our app> I/PhoneWindow﹕[setNavigationBarColor2] color=0x ff000000
发生这种情况后,应用程序会立即崩溃,因为其中一个片段正在尝试引用dataManager
,现在是null
。我之前从未见过这个错误,但我怀疑MainActivity
正在刷新,因为这两行也是Android Studio日志中出现的第一个。是否有某种方法我应该处理从头开始重新加载的MainActivity
以保留当前的应用程序状态,或者我应该以某种方式重新加载应用程序?
答案 0 :(得分:0)
惊心动魄的结论:我最终尝试使用应用程序旋转我的手机,立即可靠地触发了崩溃。这意味着Jiang YD是正确的,并且应用程序无法正常使用Activity生命周期,并且只要再次调用onDestroy()
和onCreate()
,就会崩溃。我现在使用Bundle
来保存关键状态变量,因此应用可以处理这样的事件。