facebook twitter hatena line email

「Android/ライフサイクル」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(回転したときのライフサイクル順序(実機でlog確認済))
行62: 行62:
 
}
 
}
 
</pre>
 
</pre>
 +
==画面表示までライフサイクル順序==
 +
#onCreate()
 +
#onStart()
 +
#onResume()
 +
 
==回転したときのライフサイクル順序(実機でlog確認済)==
 
==回転したときのライフサイクル順序(実機でlog確認済)==
 
回転前表示時
 
回転前表示時

2018年11月14日 (水) 17:26時点における版

基本ライフサイクル順序

  1. onCreate()
  2. onStart()
  3. onResume()
  4. onPause()
  5. onStop()
  6. onDestroy()

参考

https://developer.android.com/reference/android/app/Activity.html

ライフサイクルコード

public class MainActivity extends AppCompatActivity {
    private String TAG = "MainActivity";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d(TAG, "onCreate");
        setContentView(R.layout.activity_main);
    }
    @Override
    protected void onStart() {
        super.onStart();
        Log.d(TAG, "onStart");
    }
    @Override
    protected void onResume() {
        super.onResume();
        Log.d(TAG, "onResume");
    }
    @Override
    protected void onPause() {
        super.onPause();
        Log.d(TAG, "onPause");
    }
    @Override
    protected void onStop() {
        super.onStop();
        Log.d(TAG, "onStop");
    }
    @Override
    protected void onDestroy() {
        Log.d(TAG, "onDestroy");
        super.onDestroy();
    }
    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
        Log.d(TAG, "onWindowFocusChanged");
    }
    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        Log.d(TAG, "onRestoreInstanceState");
    }
    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        Log.d(TAG, "onSaveInstanceState");
    }
}

画面表示までライフサイクル順序

  1. onCreate()
  2. onStart()
  3. onResume()

回転したときのライフサイクル順序(実機でlog確認済)

回転前表示時

  1. onStart
  2. onResume
  3. onWindowFocusChanged

回転したとき

  1. onPause
  2. onSaveInstanceState
  3. onStop
  4. onDestroy
  5. onCreate
  6. onStart
  7. onRestoreInstanceState
  8. onResume
  9. onWindowFocusChanged

バック・フォアグラウンドのライフサイクル順序(実機でlog確認済)

バックグラウンドに入ったとき

  1. onPause
  2. onWindowFocusChanged
  3. onSaveInstanceState
  4. onStop

フォアグラウンドに復活したとき

  1. onStart
  2. onResume
  3. onWindowFocusChanged

Intentで別の画面に移動&元の画面に戻ったときのライフサイクル順序(実機でlog確認済)

Intentで別の画面に移動

  1. onPause

元の画面に戻ったとき

  1. onResume