2015-08-13 137 views
0

我们正在开发的Android应用程序使用dataManager对象来处理与所需的API和其他相关服务的通信。它在MainActivity中创建,然后传入我们有的片段中,以便它们也可以使用它。最近我们遇到了麻烦,其中一个片段试图访问dataManager,但它莫名其妙地变成了null。这似乎总是另一个事件,其在此处展示Android Studio中的日志发生后,右:MainActivity随机刷新,应用程序崩溃

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以保留当前的应用程序状态,还是应该以某种方式重新加载应用程序?

+1

检查是否为空,然后尝试刷新控制状态。 –

+0

@dieter_h我会如何刷新它?我对Android有些新鲜感,而Google的快速搜索功能对这些搜索字词的用途并不多。 – TheSoundDefense

+0

'if(dataManager!= null){'做些什么 - 刷新'}' –

回答

0

惊心动魄的结论:我最终尝试旋转我的手机上的应用程序,它立即可靠地引发了崩溃。这意味着Jiang YD是正确的,并且该应用没有正确处理Activity的生命周期,并且只要再次调用onDestroy()onCreate()就会崩溃。我现在使用Bundle来保存关键的状态变量,所以应用程序可以处理这样的事件。