【发布时间】:2015-02-08 22:31:26
【问题描述】:
当活动已经在运行时,我会打开标志 noHistory 和 excludeFromRecents。 例如,当谷歌浏览器以隐身模式打开时会生成通知, 当您单击它时,它会消除堆栈的所有活动并从最近删除。我想用我的应用程序的一些活动来做这样的事情。
编辑: David Wasser 提出的解决方案可行,但我的问题有点复杂。 这是我的 manifest.xml
...
<activity
android:name=".ActivityRecive"
android:excludeFromRecents="true"
android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
<data android:mimeType="video/*" />
</intent-filter>
</activity>
<activity
android:name=".ActivityPasswordToIncognito">
</activity>
<activity
android:name=".ActivityIncognitoMode1">
</activity>
<activity
android:name=".ActivityIncognitoMode2">
</activity>
<activity
android:name=".ActivityIncognitoMode3"
</activity>
...
ActivityRecive:作为意图的结果开始。我希望将此活动从堆栈中排除并从最近排除。 ActivityRecive 可以启动 ActivityPasswordToIncognito。
ActivityPasswordToIncognito:“正常”活动。 ActivityPasswordToIncognito 可以启动 ActivityIncognitoMode(X)。
ActivityIncognitoMode(X):他们可以启动 ActivityIncognitoMode(x+1),我希望在用户退出隐身模式时从最近和堆栈中删除。
问题是根Activity(ActivityRecive)使用了android:excludeFromRecents="true",那么task中的所有activity都从recent中排除。我曾尝试使用 FLAG_ACTIVITY_NEW_TASK 启动 ActivityPasswordToIncognito,但不起作用。
【问题讨论】:
-
你试过什么?你看到的行为是什么?什么不工作?更具体。
-
@DavidWasser 我想在活动已经运行时模拟标志 noHistory 和 excludeFromRecents 的操作。据我所知,完成()活动。但这不会从最近删除,如果它是堆栈的最后一个,则会重新创建。对不起我的英语。
标签: android android-activity activity-lifecycle