我在后台工作时遇到问题。我有两个活动,A和B.只有A可以启动B(清单复制在下面)。这就是我的工作:
这非常令人困惑。这就像Android知道我的应用程序正在运行,并在运行的旧B实例之上放置一个新的A实例。我只是希望应用程序就地暂停,每当用户再次点击应用程序图标时,它就会从它停止的地方开始(在这种情况下,只需再次显示B!)以下是清单,并且此测试的活动类是完全空的(除了A,它有一个按钮来启动B)。
<activity android:name=".ActivityA"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ActivityB"
android:label="@string/app_name">
<intent-filter>
<!--
<action android:name="android.intent.action.VIEW" />
-->
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
答案 0 :(得分:2)
如果我不得不猜测,因为你的app抽屉里面是你的程序A的.apk参考。无论B是否已经启动,选择时应用程序的INTENT
是启动程序A. / p>
我只在Android上阅读了一些内容,所以我不能100%肯定地说,但这是我的猜测。
我希望这会有所帮助。
按住Android手机上的Home键,显示后台应用程序列表,您是否可以在模拟器内执行相同操作并查看程序B是否弹出?还是会出现同样的问题?
在阅读Google周围的内容后,我遇到了this这里有一个小片段:
任务中的所有活动都作为一个单元一起移动。整个任务(整个活动堆栈)可以被带到前台或发送到后台。例如,假设当前任务在其堆栈中有四个活动 - 在当前活动下有三个活动。用户按下HOME键,转到应用程序启动器,然后选择一个新应用程序(实际上是一个新任务)。当前任务进入后台,并显示新任务的根活动。然后,在短时间之后,用户返回主屏幕并再次选择先前的应用程序(前一个任务)。这个任务,包括堆栈中的所有四个活动,出现了。当用户按下BACK键时,屏幕不显示用户刚刚离开的活动(上一个任务的根活动)。而是删除堆栈顶部的活动,并显示同一任务中的先前活动。
我希望这能指出你正确的方向
答案 1 :(得分:1)
答案 2 :(得分:0)
您是否在活动的xml定义中设置了以下属性?
android:launchMode="singleTop"