是否可以在堆栈上启动一个 Activity ,清除它之前的整个历史记录?
情况
我有一个 Activity 堆栈,可以是 A->B->C 或 B->C(屏幕 A 选择用户 token ,但许多用户只有一个 token )。
在屏幕 C 中,用户可能会采取使屏幕 B 无效的操作,因此应用程序希望将他们带到屏幕 A,而不管它是否已经在堆栈中。然后,屏幕 A 应该是我的应用程序堆栈中的唯一项目。
备注
还有许多其他类似的问题,但我还没有找到任何可以回答这个确切问题的东西。我试过调用getParent().finish()
- 这总是导致空指针异常。 FLAG_ACTIVITY_CLEAR_TOP
仅当 Activity 已经在堆栈上时才有效。
在 API 级别 11 中,为此添加了一个新的 Intent 标志:Intent.FLAG_ACTIVITY_CLEAR_TASK
只是为了澄清,使用这个:
java
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
IntentCompat.FLAG_ACTIVITY_CLEAR_TASK
清除任务的标志。所以你也可以支持 pre API level 11。
关于android - 清除整个历史堆栈并在 Android 上启动一个新 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3473168/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://jike.in/) | Powered by Discuz! X3.4 |