我在最近的列表中遇到了类似的问题,因为似乎有少数情况下应用程序将被完全销毁,但其他一些进程将从正在使用的最后一个活动启动应用程序。由于我的应用程序的状态建立在几个指定的活动上,我需要防止这种情况(即来自 onCreate() 的空引用)。
不检查状态是我所有的 onCreate() 函数有没有办法防止这种情况?
此外,除了启动器,最近,来自其他应用程序的后退按钮 - 如果我没有授予清单权限以明确启动它,是否还有更多条件可以启动我的应用程序?
谢谢!
我在最近的列表中遇到了类似的问题,因为似乎有少数情况下应用程序将被完全销毁,但其他一些进程将从正在使用的最后一个活动启动应用程序。由于我的应用程序的状态建立在几个指定的活动上,我需要防止这种情况(即来自 onCreate() 的空引用)。
不检查状态是我所有的 onCreate() 函数有没有办法防止这种情况?
此外,除了启动器,最近,来自其他应用程序的后退按钮 - 如果我没有授予清单权限以明确启动它,是否还有更多条件可以启动我的应用程序?
谢谢!
如果我理解正确,您在活动 B 中进行了初始化,这些初始化依赖于活动 A 已将它们传入。如果意图首先启动活动 B,但它没有处于活动状态,或者首先由 A 启动,您的活动将崩溃。
我能想出的最简单的解决方案是让您的活动 A(我假设您的主要活动)成为您希望处理的所有意图的广播侦听器,并根据意图操作,分派给适当的子活动(B、C 等) )。这样,活动 A 会完成所有初始化,您仍然可以启动适当的活动来处理您想要的原始意图。
或者。如果您检测到您的子活动处于无效状态,您可以将初始化放入您的所有活动扩展的父活动中。这样,如果活动是新的启动,您应该能够正确初始化。我不是这个的粉丝,我更喜欢确保我的活动是依赖注入适当的数据。