安卓系统:最近应用程序行为异常。

4
我们的应用程序有两个活动 - 一个与启动器图标相关联的MainActivity和一个用于处理URI事件的AuxActivity
我在以下场景中发现了一个问题,当我的应用程序最初退出时:
1. 打开浏览器,单击URI以启动AuxActivity。 2. AuxActivity退出(调用finish()),用户返回浏览器。 3. 用户打开最近使用的应用程序(长按主屏幕键),并选择我的应用程序。
与其启动MainActivity,我看到AuxActivity被启动,并且使用相同的意图表示URI单击(android.intent.action.VIEW)。
如果用户通过应用程序的主屏幕图标打开我的应用程序,那么我会回到MainActivity,这是预期的。
如何使步骤3启动MainActivity

我不确定,但是我认为你不能让它指向其他活动,除非在辅助Activity中有某种逻辑,能够确定应该启动MainActivity,并将用户转到该Activity。我认为在启动辅助Activity时可以使用某种清单属性和/或意图标志,使其不在最近使用的应用程序列表中显示。(但我不知道头脑中的具体内容是什么) - FoamyGuy
3个回答

2
将以下代码放入AuxActivity的onCreate方法中:
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) > 0) {
    // do something different e.g. launch MainActivity
}

1

不确定这个方法是否有效,但你也可以尝试:

android:noHistory="true"

该属性决定了当用户离开并且屏幕上不再显示时,活动是否应该从活动堆栈中移除并结束(调用其finish()方法)——如果应该结束,则为"true",否则为"false"。默认值为"false"。"true"表示该活动不会留下历史记录,它不会在任务的活动堆栈中保留,因此用户将无法返回到该活动。该属性在API Level 3中引入。


1

根据Tim的建议,加上什么呢?

android:excludeFromRecents="true"

在清单文件中的auxActivity列表中添加吗?这样有帮助吗?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接