AndroidX-Jetpack-Lifecycle

當前版本:
compileSdkVersion 29
implementation 'androidx.appcompat:appcompat:1.2.0'

第一步:創(chuàng)建Activity繼承AppCompatActivity類。

public class LifeCycleActivity extends AppCompatActivity {
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_life_cycle);

    }
}

第二步:定義一個類MyLifeCycleObserver,實現(xiàn)LifecycleObserver接口。

在MyLifeCycleObserver中定義方法,加上@OnLifecycleEvent注解
import android.util.Log;

import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent;
public class MyLifeCycleObserver implements LifecycleObserver {
    private static final String TAG = MyLifeCycleObserver.class.getSimpleName();

    @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
    public void onCreate() {
        Log.e(TAG, "onCreate");
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_START)
    public void onStart() {
        Log.e(TAG, "onStart");
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    public void onResume() {
        Log.e(TAG, "onResume");
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
    public void onPause() {
        Log.e(TAG, "onPause");
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
    public void onStop() {
        Log.e(TAG, "onStop");
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
    public void onDestory() {
        Log.e(TAG, "onDestory");
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_ANY)
    public void onAny() {
        Log.e(TAG, "onAny");
    }

}

第三步:在Activity中,getLifecycle().addObserver(new MyLifeCycleObserver());

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.e(TAG, "onCreate    enable:"+enable());
        setContentView(R.layout.activity_life_cycle);
        getLifecycle().addObserver(new MyLifeCycleObserver());
    }

MyLifeCycleObserver 由創(chuàng)建到銷毀,其生命周期方法的會被MyLifeCycleObserver觀察到,并依次執(zhí)行其生命周期相關聯(lián)的方法。
運行結果如下

2020-11-19 10:11:34.793 20430-20430/com.example.jetpack E/LifeCycleActivity: onCreate
2020-11-19 10:11:34.815 20430-20430/com.example.jetpack E/MyLifeCycleObserver: onCreate
2020-11-19 10:11:34.815 20430-20430/com.example.jetpack E/MyLifeCycleObserver: onAny

2020-11-19 10:11:34.818 20430-20430/com.example.jetpack E/LifeCycleActivity: onStart
2020-11-19 10:11:34.818 20430-20430/com.example.jetpack E/MyLifeCycleObserver: onStart
2020-11-19 10:11:34.818 20430-20430/com.example.jetpack E/MyLifeCycleObserver: onAny

2020-11-19 10:11:34.818 20430-20430/com.example.jetpack E/LifeCycleActivity: onResume
2020-11-19 10:11:34.818 20430-20430/com.example.jetpack E/MyLifeCycleObserver: onResume
2020-11-19 10:11:34.819 20430-20430/com.example.jetpack E/MyLifeCycleObserver: onAny

2020-11-19 10:11:38.678 20430-20430/com.example.jetpack E/MyLifeCycleObserver: onPause
2020-11-19 10:11:38.678 20430-20430/com.example.jetpack E/MyLifeCycleObserver: onAny
2020-11-19 10:11:38.678 20430-20430/com.example.jetpack E/LifeCycleActivity: onPause

2020-11-19 10:11:39.278 20430-20430/com.example.jetpack E/MyLifeCycleObserver: onStop
2020-11-19 10:11:39.278 20430-20430/com.example.jetpack E/MyLifeCycleObserver: onAny
2020-11-19 10:11:39.278 20430-20430/com.example.jetpack E/LifeCycleActivity: onStop

2020-11-19 10:11:39.279 20430-20430/com.example.jetpack E/MyLifeCycleObserver: onDestory
2020-11-19 10:11:39.279 20430-20430/com.example.jetpack E/MyLifeCycleObserver: onAny
2020-11-19 10:11:39.280 20430-20430/com.example.jetpack E/LifeCycleActivity: onDestroy

需要注意的是:

當activity生命周期方法觸發(fā)時,會同時回調到這里
需要注意的是:
1.onCreate、onStart和onResume三個方法,會在對應的Activity方法執(zhí)行完之后執(zhí)行,
而onPause、onStop和onDestory 三個方法,會在對應的Activity方法之前執(zhí)行。
2.onAny方法會在LifecycleObserver的每個生命周期方法執(zhí)行之后調用。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容