我的问题很混乱。我已经构建了我的应用程序的最终版本APK,将其提交到Play商店,并安装在我的测试设备上。当我以这种方式安装时,应用程序表现出不同的启动模式行为。
我生成的APK是Gradle版本的产品,包括Proguard和zipalign。为了便于解释,请说我的应用程序是一个仪表板类型的应用程序,其主要活动显示活动B的启动按钮。我拿这个版本APK并通过USB'adb install'安装到我的设备所以我正在比较完全相同的APK有两种不同的安装方法。
USB方法:当用户点击主活动中的按钮以启动活动B时,活动B将启动并显示在屏幕上。如果用户点击主页按钮(接到电话等)然后返回应用程序,活动B仍然显示。这是期望的(AND EXPECTED)行为。
商店方法:从商店下载APK并再次安装/启动会显示主要的活动。单击该按钮时,将再次启动活动B.现在,当用户回到主页并返回时,后面的堆栈显然被清除,主活动再次显示。
我没有在清单中指定任何特殊的启动模式,因此所有活动都是标准的。怎么安装方法会影响这样的事情!?这让我很生气。有没有人知道为什么会这样?
答案 0 :(得分:0)
我遇到了同样的问题,这对我有用。在您的Manifest的activity元素中明确设置launchMode。
android:launchMode="singleTop"
“如果活动的实例已存在于目标任务的顶部,则系统通过调用其onNewIntent()方法将意图路由到该实例,而不是创建活动的新实例。”< / p>
有关更多选项和说明,请参阅文档: http://developer.android.com/guide/topics/manifest/activity-element.html