我读过许多关于应用程序类或Singletons中的全局变量有多糟糕的文章。对我来说,最大的问题是,当应用程序被系统杀死并且用户重新启动它时,它将导致NullPointerException。该应用程序将从用户之前所在的活动(而不是该应用程序的第一个活动)重新启动。全局变量不会永远留在内存中,因此启动最后一个Activity会导致NPE(如果您不手动检查是否为null)。
所有这些示例均使用具有多个活动的应用程序。单活动应用程序是否仍然存在此问题?
我试图在我的应用程序中复制NullPointerException,但是在我所有的设备上,该应用程序都会以第一个片段重新启动,因此该应用程序不会崩溃。
是的,他们有。它不会使我的应用程序崩溃的原因是,在没有先创建单例数据的情况下,我没有片段。我通过用会议室数据库替换单例来解决此问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句