4

我想知道如何清理堆栈的所有先前活动(新的活动除外),但我希望在 Android API 10(Android 2.3.3)中进行。

以这个答案为指导,我知道这是不可能的,因为自 API 11 以来就存在专门用于执行此操作的标志。

但我想知道这是否可能具有某种兼容性,或者是否有人有任何解决方案。

提前致谢。

4

2 回答 2

6

这样做的方法是始终使用startActivityForResult(). 如果要清理活动堆栈,请先调用当前活动setResult(RESULT_CANCELED),然后再调用finish(). 在所有活动中(除了您的主要或“根”活动)都有以下方法:

@Override
protected void onActivityResult (int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_CANCELED) {
        // Want to clear the activity stack so I should just go away now
        setResult(RESULT_CANCELED); // Propagate result to the previous activity
        finish();
}

这将完成堆栈中的所有活动。

于 2012-09-04T15:37:52.390 回答
0

您可以将清单文件 android:noHistory="true" 添加到您不想保留在堆栈中的每个活动中

于 2012-09-02T08:27:09.357 回答