我想知道如何清理堆栈的所有先前活动(新的活动除外),但我希望在 Android API 10(Android 2.3.3)中进行。
以这个答案为指导,我知道这是不可能的,因为自 API 11 以来就存在专门用于执行此操作的标志。
但我想知道这是否可能具有某种兼容性,或者是否有人有任何解决方案。
提前致谢。
我想知道如何清理堆栈的所有先前活动(新的活动除外),但我希望在 Android API 10(Android 2.3.3)中进行。
以这个答案为指导,我知道这是不可能的,因为自 API 11 以来就存在专门用于执行此操作的标志。
但我想知道这是否可能具有某种兼容性,或者是否有人有任何解决方案。
提前致谢。
这样做的方法是始终使用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();
}
这将完成堆栈中的所有活动。
您可以将清单文件 android:noHistory="true" 添加到您不想保留在堆栈中的每个活动中