1.从app安装程序安装apk 2.然后点击“打开”立即启动它 3.启动应用程序后按HOME键 4.从应用列表中找到应用并单击其图标以再次启动 5.然后,应用程序将使用新实例启动。 如果你多次重复3~5次,它将重复创建一个新实例。如果您现在按“BACK”键,您将看到应用程序在您启动的同时仍然存在。
但是如果您只是在步骤2中单击“完成”然后从应用列表启动应用程序,则一切都会正常。 为什么呢?
答案 0 :(得分:1)
应用程序安装程序(以及许多Android IDE)使用与常规应用程序启动程序不同的意图标记,这意味着启动程序的意图与活动的现有意图不匹配,并最终创建新的活动堆栈顶部。
我认为这个问题类似于你所问的问题:
答案 1 :(得分:0)
这个解决方案对我有用。它会检查应用程序是否以这种方式启动,然后完成活动。这样就留下了应该开始的活动,并把它带到了前面。
private void checkIfActivityShouldBeFinished() {
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
// Activity was brought to front and not created,
// Thus finishing this will get us to the last viewed activity
finish();
return;
}
}