facebook twitter hatena line email

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

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(バック・フォアグラウンドのライフサイクル順序(実機でlog確認済))
行1: 行1:
==ライフサイクル順序==
+
==基本ライフサイクル順序==
 
#onCreate()
 
#onCreate()
 
#onStart()
 
#onStart()
行10: 行10:
 
https://developer.android.com/reference/android/app/Activity.html
 
https://developer.android.com/reference/android/app/Activity.html
  
 +
==ライフサイクルコード==
 +
<pre>
 +
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");
 +
    }
 +
}
 +
</pre>
 
==回転したときのライフサイクル順序(実機でlog確認済)==
 
==回転したときのライフサイクル順序(実機でlog確認済)==
 
回転前表示時
 
回転前表示時

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

基本ライフサイクル順序

  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");
    }
}

回転したときのライフサイクル順序(実機で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