1.从应用程序安装程序安装一个apk 2.然后只需单击“OPEN”立即启动它 3.应用程序启动后,然后按HOME键 4.从应用程序列表中找到应用程序并单击其图标再次启动 5.然后该应用程序将使用新实例启动。如果你重复3~5次,它会重复创建一个新实例。如果您现在按“BACK”键,您将看到该应用程序在您启动的同一时间仍然存在。
但是,如果您只是在第 2 步单击“完成”,然后从应用程序列表中启动该应用程序,那么一切都会好起来的。为什么?
1.从应用程序安装程序安装一个apk 2.然后只需单击“OPEN”立即启动它 3.应用程序启动后,然后按HOME键 4.从应用程序列表中找到应用程序并单击其图标再次启动 5.然后该应用程序将使用新实例启动。如果你重复3~5次,它会重复创建一个新实例。如果您现在按“BACK”键,您将看到该应用程序在您启动的同一时间仍然存在。
但是,如果您只是在第 2 步单击“完成”,然后从应用程序列表中启动该应用程序,那么一切都会好起来的。为什么?
应用安装程序(以及许多 Android IDE)使用与常规应用启动器不同的意图标志,这意味着启动器的意图与 Activity 的现有意图不正确匹配,并最终在堆。
我认为这个问题与您要问的问题相似:
这个解决方案对我有用。它检查应用程序是否以这种方式启动,然后完成活动。这留下了应该开始的活动并将其带到前面。
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;
}
}