[英]delete activity from recent, when the application is running
当活动已经在运行时,我将标记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”,则任务中的所有活动都被排除在最近。 我尝试使用FLAG_ACTIVITY_NEW_TASK启动ActivityPasswordToIncognito,但无法正常工作。
如果要使整个应用程序消失,并且在“最近的任务”列表中不留任何痕迹,则应该可以执行以下操作:
Intent intent = new Intent(this, MyRootActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
intent.putExtra("finish", true);
startActivity(intent);
在您的根活动中,将以下代码添加到onCreate()
:
super.onCreate();
if (getIntent().hasExtra("finish")) {
// Need to finish now
finish();
return;
}
... rest of your onCreate() code...
这会将堆栈清除回您的根活动(具有ACTION = MAIN和CATEGORY = LAUNCHER的堆栈),然后退出根活动。 因为根活动是使用Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
启动的, Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
它不应显示在近期任务列表中。
注意:仅当您的根活动在应用程序中启动其他活动时仍保留在活动堆栈中(即:不调用finish()
)时,此方法才有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.