在項目中看到Activity使用onRestart(),平時對這個方法的調用時機知道的比較少,研究一下它啥時候會被調用。
代碼很簡單:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, MainActivity1.class);
startActivity(intent);
}
});
Log.e(MainActivity.class.getSimpleName(), "onCreate()");
}
@Override
protected void onRestart() {
super.onRestart();
Log.e(MainActivity.class.getSimpleName(), "onRestart()");
}
@Override
protected void onStart() {
super.onStart();
Log.e(MainActivity.class.getSimpleName(), "onStart()");
}
@Override
protected void onResume() {
super.onResume();
Log.e(MainActivity.class.getSimpleName(), "onResume()");
}
@Override
protected void onPause() {
super.onPause();
Log.e(MainActivity.class.getSimpleName(), "onPause()");
}
@Override
protected void onStop() {
super.onStop();
Log.e(MainActivity.class.getSimpleName(), "onStop()");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.e(MainActivity.class.getSimpleName(), "onDestroy()");
}
}
(1)啟動這個demo執行如1;onCreate()--->onStart()--->onResume()這三個方法
(2)按下home鍵執行如2;onPause()--->onStop()這兩個方法
(3)再次打開這個demo執行如3;onRestart()--->onStart()--->onResume()三個方法。
(4)點擊界面的btn,跳轉到另一個Activity1,會執行如下圖1;onPause()--->onStop()兩個方法
(5)從Activity1返回,會執行如下圖2;onRestart()--->onStart()--->onResume()三個方法
(6)切換到其他的應用,執行如下圖1;onPause()--->onStop()兩個方法
(7)從其他應用切換回來,執行如下圖2;onRestart()--->onStart()--->onResume()三個方法
總結:可以看到以下幾種情況下onRestart()方法是會被調用的,測試的手機MI 2S,系統版本4.1.1。
(1)按下home鍵之后,然后切換回來,會調用onRestart()。
(2)從本Activity跳轉到另一個Activity之后,按back鍵返回原來Activity,會調用onRestart();
(3)從本Activity切換到其他的應用,然后再從其他應用切換回來,會調用onRestart();
想知道更詳細的Activity生命周期,還可以參考一下文章:
http://blog.csdn.net/liuhe688/article/details/6733407
http://blog.csdn.net/android_tutor/article/details/5772285
————————————————
版權聲明:本文為CSDN博主「zhuhai__yizhi」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/zhuhai__yizhi/article/details/47419451