0

1.从应用程序安装程序安装一个apk 2.然后只需单击“OPEN”立即启动它 3.应用程序启动后,然后按HOME键 4.从应用程序列表中找到应用程序并单击其图标再次启动 5.然后该应用程序将使用新实例启动。如果你重复3~5次,它会重复创建一个新实例。如果您现在按“BACK”键,您将看到该应用程序在您启动的同一时间仍然存在。

但是,如果您只是在第 2 步单击“完成”,然后从应用程序列表中启动该应用程序,那么一切都会好起来的。为什么?

4

2 回答 2

1

应用安装程序(以及许多 Android IDE)使用与常规应用启动器不同的意图标志,这意味着启动器的意图与 Activity 的现有意图不正确匹配,并最终在堆。

我认为这个问题与您要问的问题相似:

从 Android 应用程序安装程序和主屏幕启动应用程序时的活动堆栈排序问题

于 2013-10-26T00:14:10.060 回答
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;  
   }  
 }

于 2014-12-17T19:41:58.180 回答