How to close activity and go back to previous activity in android

后端 未结 18 1785
孤独总比滥情好
孤独总比滥情好 2020-12-07 08:19

I have a main activity, that when I click on a button, starts a new activity, i used the following code to do so:

Intent intent = new Intent(this, SettingsAc         


        
相关标签:
18条回答
  • 2020-12-07 08:46

    it may be possible you are calling finish(); in the click button event so the main activity is closed just after you clicking the button and when you are coming back from next activity the application is exit because main activity is already closed and there is no active activity.

    0 讨论(0)
  • 2020-12-07 08:47

    I don't know if this is even usefull or not but I was strugling with the same problem and I found a pretty easy way, with only a global boolean variable and onResume() action. In my case, my Activity C if clicked in a specific button it should trigger the finish() of Activity B!

    Activity_A -> Activity_B -> Activity_C

    Activity_A (opens normally Activity_B)

    Activity_B (on some button click opens Activity_C):

    // Global:
    boolean its_detail = false;
    // -------
    SharedPreferences prefs =  getApplicationContext().getSharedPreferences("sharedpreferences", 0);
    boolean v = prefs.getBoolean("select_client", false);
    
    its_detail = v;
    
    startActivity(C);
    
    @Override
    public void onResume(){
         super.onResume();
         if(its_detail == true){
            finish();
         }
    }
    

    So, whenever I click the button on Activity C it would do the "onResume()" function of Activity B and go back to Activity A.

    0 讨论(0)
  • 2020-12-07 08:48

    You have to use this in your MainActivity

     Intent intent = new Intent(context , yourActivity);
    
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
                context.startActivity(intent);
    

    The flag will start multiple tasks that will keep your MainActivity, when you call finish it will kill the other activity and get you back to the MainActivity

    0 讨论(0)
  • 2020-12-07 08:51

    You are making this too hard. If I understand what you are trying to do correctly, the built-in 'back' button and Android itself will do all the work for you: http://developer.android.com/guide/components/tasks-and-back-stack.html

    Also, implementing a custom "back" button violates Core App Quality Guideline UX-N1: http://developer.android.com/distribute/googleplay/quality/core.html

    0 讨论(0)
  • 2020-12-07 08:53
     @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            int id = item.getItemId();
    
            if ( id == android.R.id.home ) {
                finish();
                return true;
            }
    
            return super.onOptionsItemSelected(item);
        }
    

    Try this it works both on toolbar back button as hardware back button.

    0 讨论(0)
  • 2020-12-07 08:54

    on onCreate method of your activity write the following code.

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    

    Then override the onOptionsItem selected method of your activity as follows

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()){
            case android.R.id.home:
                finish();
        }
        return super.onOptionsItemSelected(item);
    }
    

    And you are good to go.

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