Search code examples
androidandroid-intentandroid-activityandroid-compatibility

How to clean back stack on Android API 10 (Android 2.3.3)


I would like to know how can I clean all previous activities of the stack (except the new one), but I want that in Android API 10 (Android 2.3.3).

Guided with this answer, I know it is not directly possible because the flag dedicated to do that exists since API 11.

But I would like to know if this is possible maybe with some compatibility or if someone has any solution.

Thanks in advance.


Solution

  • On way to do this is to always start your activities using startActivityForResult(). In the case where you want to clean the activity stack have the current activity call setResult(RESULT_CANCELED) and then call finish(). In all activities (except your main or "root" activity) have the following method:

    @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();
    }
    

    This will finish all activities in the stack.