Android: Clear the back stack

前端 未结 30 1860
被撕碎了的回忆
被撕碎了的回忆 2020-11-22 06:47

In Android I have some activities, let\'s say A, B, C.

In A, I use this code to open B:

Intent intent = new Intent(this, B.class);
startActivity(inte         


        
相关标签:
30条回答
  • 2020-11-22 07:31
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
    startActivity(intent);
    
    0 讨论(0)
  • 2020-11-22 07:32

    Use this code for starting a new Activity and close or destroy all other activity stack or back stack.

    Intent intent = new Intent(this, MainActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
    startActivity(intent);
    
    0 讨论(0)
  • 2020-11-22 07:33

    Add NO History Flag in the intent.

    In activity B, start the activity C as below >>>>>>

    Intent intent = new Intent(this, C.class);
    intent.setFlags(intent.getFlags() | Intent.FLAG_ACTIVITY_NO_HISTORY); 
    startActivity(intent);
    finish();
    
    0 讨论(0)
  • 2020-11-22 07:34

    Use setFlags() method for clear back side opened all activity close and start yourActvity

    Intent intent = new Intent(getApplicationContext(), yourActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
    startActivity(intent);
    
    0 讨论(0)
  • 2020-11-22 07:36

    for me adding Intent.FLAG_ACTIVITY_CLEAR_TASK solved the problem

    Intent i = new Intent(SettingsActivity.this, StartPage.class);
                    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP  | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
                    startActivity(i);
    finish();
    
    0 讨论(0)
  • 2020-11-22 07:36

    Either add this to your Activity B and Activity C

    android:noHistory="true"
    

    or Override onBackPressed function to avoid back pressing with a return.

    @Override
    public void onBackPressed() {
       return;
    }
    
    0 讨论(0)
提交回复
热议问题