Android操作系统能否以与启动器活动不同的活动启动应用程序?
我有一个应用程序显示了一些奇怪的错误。应用程序处于一种状态,其中一些全局数据为null,但不应为null(查看应用程序的逻辑,无法达到该状态)。我怀疑操作系统本身正在覆盖全局数据,或者正在重新启动我的应用程序(或启动我的应用程序)并绕过初始活动。这些情况中有任何一种是可能的吗?(当然,我的逻辑可能总是错误的,但在这一点上,我真的怀疑发生了什么事) 否,它总是以启动器标记开始搜索活动。Android操作系统能否以与启动器活动不同的活动启动应用程序?,android,operating-system,global,Android,Operating System,Global,我有一个应用程序显示了一些奇怪的错误。应用程序处于一种状态,其中一些全局数据为null,但不应为null(查看应用程序的逻辑,无法达到该状态)。我怀疑操作系统本身正在覆盖全局数据,或者正在重新启动我的应用程序(或启动我的应用程序)并绕过初始活动。这些情况中有任何一种是可能的吗?(当然,我的逻辑可能总是错误的,但在这一点上,我真的怀疑发生了什么事) 否,它总是以启动器标记开始搜索活动。 添加您的代码,并明确哪些全局数据获得空值:)我对此深表怀疑。启动器的概念是定义从操作系统接收启动意图的活动 根据
添加您的代码,并明确哪些全局数据获得空值:)我对此深表怀疑。启动器的概念是定义从操作系统接收启动意图的活动
根据您描述的行为进行猜测,您可能希望对活动生命周期进行一些研究。启动器用于确定在应用程序启动时要启动的活动。。。。。因此我不认为这是可能的…是的事实上,在各种情况下都会出现这种情况:
正如您所描述的,虽然结果在技术上可能是正确的,但原因是应用程序的backbackback仍保留在内存中(操作系统指针)。但是,当应用程序完全退出时,被定义为启动器活动的活动将被发送到意图。再次强调,这里应该考虑活动生命周期。如果您完全退出任务堆栈,那么是的。但是如果您转到其他地方,进程被终止,然后从历史记录中返回,您将不会看到重新创建的启动器活动。Try it-创建一个启动非启动程序活动的启动程序活动,并记录它们的onCreate()方法。发射,到第二个。然后按home并终止进程。现在使用history按钮返回到activity(活动)-您将在logcat中看到的结果是调用了第二个activity on create(并在新的流程id下记录),但launcher activity(启动程序活动)没有。但是,如果您在流程在屏幕上时终止了该流程,则可以从launcher activity(启动程序活动)重新启动。如果你在屏幕外杀死它,直接从历史记录中重新启动到第二个活动中,然后按back键,此时将创建启动器活动。对用户来说,它看起来总是在那里,但实际上它只是在需要时才被重新创建。这对我来说是非常有用的信息,我发现这并没有很好的文档记录(参考?)。非常感谢克里斯。至少现在我知道我必须考虑这个案例。它被记录在活动生命周期文档中。
Can Android OS start app with different Activity than Launcher Activity?