Android:从app安装程序启动应用程序会导致多个实例?

时间:2013-10-25 15:20:25

标签: android installer instances

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

但是如果您只是在步骤2中单击“完成”然后从应用列表启动应用程序,则一切都会正常。 为什么呢?

2 个答案:

答案 0 :(得分:1)

应用程序安装程序(以及许多Android IDE)使用与常规应用程序启动程序不同的意图标记,这意味着启动程序的意图与活动的现有意图不匹配,并最终创建新的活动堆栈顶部。

我认为这个问题类似于你所问的问题:

Activity stack ordering problem when launching application from Android app installer and from Home screen

答案 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;  
   }  
 }