How to restart Activity in Android

后端 未结 21 2453
日久生厌
日久生厌 2020-11-22 08:14

How do I restart an Android Activity? I tried the following, but the Activity simply quits.

public static void restartActivity(Act         


        
21条回答
  •  孤独总比滥情好
    2020-11-22 08:25

    I used this code so I still could support older Android versions and use recreate() on newer Android versions.

    Code:

    public static void restartActivity(Activity activity){
        if (Build.VERSION.SDK_INT >= 11) {
            activity.recreate();
        } else {
            activity.finish();
            activity.startActivity(activity.getIntent());
        }
    }
    

    Sample:

    import android.app.Activity;
    import android.os.Build;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.Button;
    
    public class MainActivity extends AppCompatActivity {
        private Activity mActivity;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            mActivity = MainActivity.this;
    
            Button button = (Button) findViewById(R.id.restart_button);
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    restartActivity(mActivity);
                }
            });
        }
    
        public static void restartActivity(Activity activity) {
            if (Build.VERSION.SDK_INT >= 11) {
                activity.recreate();
            } else {
                activity.finish();
                activity.startActivity(activity.getIntent());
            }
        }
    }
    

提交回复
热议问题