主要活动有时是第二次创建

时间:2017-11-10 10:44:10

标签: android

我的应用程序有一个主要活动以及从它开始的其他活动。

通常,启动应用程序会启动主要活动,然后如果我尝试从主屏幕再次启动应用程序,则应用程序只会返回到前台,显示堆栈顶部的任何活动。 这就是我想要发生的事情。

从我的应用程序分析崩溃报告我可以看到,在某些情况下,主要活动是第二次启动。我无法在我的测试设备/模拟器上实现这一点,而且我也不确切地知道用户正在做些什么来触发问题。

这是(匿名)日志:

09/11/2017 23:49:29.979: Information: App starting
09/11/2017 23:49:30.313: Information: Activity OnCreate (launching:True): MainActivity
09/11/2017 23:49:30.321: Information: Main activity launch intent: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10600000 cmp=com.company.appname/md50e6758159625f2df0d9d3f1df35dbb47.MainActivity launchParam=MultiScreenLaunchParams { mDisplayId=0 mBaseDisplayId=0 mFlags=0 } bnds=[544,189][797,486] (has extras) }
09/11/2017 23:49:38.152: Information: Activity OnCreate (launching:True): SecondActivity
09/11/2017 23:49:53.815: Information: App going to background
09/11/2017 23:51:07.257: Information: Activity OnCreate (launching:True): MainActivity
09/11/2017 23:51:07.268: Information: Main activity launch intent: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10600000 cmp=com.company.appname/md50e6758159625f2df0d9d3f1df35dbb47.MainActivity launchParam=MultiScreenLaunchParams { mDisplayId=0 mBaseDisplayId=0 mFlags=0 } bnds=[544,189][797,486] (has extras) }
09/11/2017 23:51:07.380: Information: App going to foreground
09/11/2017 23:51:10.018: Information: Activity OnCreate (launching:True): ThirdActivity
09/11/2017 23:51:12.801: Information: Activity OnDestroy (finishing:True): ThirdActivity
09/11/2017 23:51:13.412: Information: Activity OnCreate (launching:True): SecondActivity

什么会导致这种行为?

我想指出应用程序进程不会被杀死,因此不会因为内存压力导致应用程序在终止后再次启动。

1 个答案:

答案 0 :(得分:0)

尝试启动模式,singleTop用于清单中的活动。 它可能会解决您的问题。

您还可以查看此参考,以便更好地理解。 https://developer.android.com/guide/components/activities/tasks-and-back-stack.html#TaskLaunchModes