android - How to Logout from the application

后端 未结 4 1412
情话喂你
情话喂你 2020-12-17 07:12

My Application have 5 activities(A1,A2,A3,A4,A5). Each activity have one text view and one button(B1,B2,B3,B4,B5). If you click on that button then goes to next activity. su

相关标签:
4条回答
  • 2020-12-17 07:14

    You have to set setResult(int resultCode) on the activity where you want to logout. Then on previous Activity you have to capture this result in onActivityResult(int requestCode, int resultCode,Intent data). Here you can Finish your Activity. Again capturing here you can setResult to close previous one and same approach. Ex.:

    You set result on logout menu press as:

    finish();                     //To finish your current acivity
    setResult(R.id.common_menu_logout);
    

    Then on previous activity:

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch(resultCode) {
            case R.id.common_menu_logout:           
                setResult(R.id.common_menu_logout);
                closeActivity();            // to close this activity
                break;  
        }
        super.onActivityResult(requestCode, resultCode, data);
    }
    
    0 讨论(0)
  • 2020-12-17 07:14

    You can also do logout by starting the LoginActivity. Example is shown below and is for when you select the Log Out button in the menu.

     @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        switch (id) {
            case R.id.action_logout:
                LoginActivity.username.setText("");
                LoginActivity.password.setText("");
                Intent logout = new Intent(getApplicationContext(), LoginActivity.class);
                startActivity(logout);
                return true;
        }
    }
    
    0 讨论(0)
  • 2020-12-17 07:24

    Suppose you have four activities (A,B,C,D) and you want to develop Logout functionality in your app using Menu buttons.

    Step 1: First Declare a Variable in

    SearchHelper.logout=0;//in SearchHelper Class
    //OnCreate of Activity--DashBoard
    if(SearchHelper.logout==1)
    {
        Intent loginscreen=new Intent(this,LoginActivity.class);
        loginscreen.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        Toast.makeText(DashBoardActivity.this, "WELCOME TO LOGINSCREEN", Toast.LENGTH_SHORT).show(); 
        startActivity(loginscreen);
        this.finish();
        SearchHelper.logout=0;
    }
    

    Step 2: onclick on logout button using menu

    Intent homescreen=new Intent(this,DashBoardActivity.class);
    SearchHelper.logout=1;
    homescreen.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(homescreen);
    this.finish();        
    

    It will redirect to DashBoard Activity then due to SearchHelper.Logout==1 it will again redirect logout Activity. Finally, like that you can logout from anywhere using the menu buttons. without problem of onBackPressed().

    Or use Single instance in manifest For Activity and handle each and every Activity onBackPressed().

    0 讨论(0)
  • 2020-12-17 07:38

    You have to close your activities (all of them) every time with finish() when you open the next one. Now, when user hits logout, there is only one of your application activity active and when this is closed, your application "exits".

    Note: It doesen't matter whether you call finish() before or after startActivity().

    0 讨论(0)
提交回复
热议问题