我有一个应用程序显示一些奇怪的错误。应用程序处于一种状态,其中一些全局数据为null,不应该为null(查看应用程序的逻辑,无法进入该状态)。我怀疑操作系统要么自己覆盖全局数据,要么重新启动我的应用程序(或启动我的应用程序)并绕过初始活动。这些情况是否可能? (当然,我的逻辑总是错误的,但此时我真的怀疑其他事情正在发生。)
答案 0 :(得分:2)
是这实际上是在各种情况下预期的:
如果您的应用程序进入后台并且Android最终将其杀死以回收资源,则后续返回可能看起来与用户无缝,但实际上是在全新的应用程序进程中。返回将直接返回到他们最后的活动,但是在一个新的过程中。将不会调用包中其他活动的onCreate()(例如您的启动器活动),除非用户导航或来自某个地方的Intent明确地重新访问这些活动。
Launcher活动(即使用android.intent.category.LAUNCHER的东西)不是您在应用程序中可以拥有的唯一入口点。许多应用程序包含具有intent过滤器的活动,这些过滤器使用一个android.intent.category.DEFAULT类别注册它们以处理android.intent.action.VIEW以及它们可以处理的某种类型内容的规范。这种类型的应用程序甚至可能根本没有包中的启动器活动(尽管可能包括浏览内容,设置配置选项或其他功能)
答案 1 :(得分:0)
Can Android OS start app with different Activity than Launcher Activity?
不,它始终会搜索带有启动器标记的活动。
添加您的代码,并具体说明哪些全局数据为空值:)
答案 2 :(得分:0)
我非常怀疑。启动器的想法是定义从OS接收启动意图的活动。
根据您描述的行为进行猜测,您可能希望对活动生命周期进行一些研究。
答案 3 :(得分:0)
启动器用于识别应用程序启动时要启动的活动 ....所以我不认为可能......