Android開発シリーズのライフサイクル管理

Androidのライフサイクル管理は、大きく分けて
、誕生から死までのライフサイクル、対応するメソッドはonCreateとonDestroy、開始と
終了の停止状態、対応するメソッドはonStartとonStop、開始と
終了の一時停止状態、対応するメソッドです。 onResumeとonPauseです。

次に、ストップウォッチAPPシナリオを例として取り上げ、次の3つの状態(
STARTはタイミングを開始し、STOPはタイミングを停止し、RESETは0からタイミングを開始します)に適用可能なシナリオを要約します。
ここに画像の説明を挿入

生から死までのライフサイクルは、最大のライフサイクル管理、つまり、作成されてから死ぬまでのアクティビティの状態です。この時点で、対応するシナリオは次のとおりです。Android画面のときにonDestroyとonCreateが順番に呼び出される場合フリップすると、前のフリップは保存されません。ロールオーバー前の状態を保存する場合は、onSaveInstanceStateメソッドを呼び出すことができます。再度有効にすると、カウント値とリセットするかどうかのブール値が取得されます。
関連するコードは次のとおりです。

protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if(savedInstanceState != null){
    
      //之前的状态
            seconds = savedInstanceState.getInt("seconds");
            running = savedInstanceState.getBoolean("running");
            wasRunning = savedInstanceState.getBoolean("wasRunning");
        }
        runTimer();  //定时器任务,定时取出Seconds值
    }

public void onSaveInstanceState(Bundle savedInstanceState){
    
    
        super.onSaveInstanceState(savedInstanceState);
        savedInstanceState.putInt("seconds",seconds);
        savedInstanceState.putBoolean("running",running);
        savedInstanceState.putBoolean("wasRunning",wasRunning);
    }

一時停止状態に出入りする使用シナリオは、APPがHOMEキーを押した後にバックグラウンドに入るとき、APPはタイミングを一時停止します。フォアグラウンドに戻るとき、タイミングは継続し、前の状態値も保存する必要があります。
関連するコードは次のとおりです。

protected void onStart() {
    
    
        super.onStart();
        if(wasRunning){
    
    
            running = true;
        }
    }

protected void onStop() {
    
    
        super.onStop();
        wasRunning = running;
        running = false;
    }

一時停止状態の開始と終了の使用シナリオは、携帯電話を分割画面で使用でき、フォーカスを失った後もAPPが表示されている場合です。このとき、APPを一時停止する必要があり、タイミングはフォーカスが回復します。この状態が最小状態です。関連するコードは次のとおりです。

protected void onResume() {
    
    
        super.onResume();
        if(wasRunning){
    
    
            running = true;
        }
    }

protected void onPause() {
    
    
        super.onPause();
        wasRunning = running;
        running = false;
    }

概要:
ここに画像の説明を挿入
誕生から死までのライフサイクルは、誕生から死までのサイクルを表す大きなサイクルです。インと
アウトの停止状態は、可視性と消失のサイクルを表す中間サイクルです。インと
アウトの一時停止状態は、フォーカスの獲得と喪失のサイクルを表す小さなサイクル。

参考資料:
https //www.icourse163.org/learn/BFU-1205989803?tid = 1450759471&from = study#/ learn / contentモバイル開発テクノロジーに関するMOOCコース

おすすめ

転載: blog.csdn.net/langxiaolin/article/details/113877760