Android Lifecycle使用

Lifecycle作用:讓所有定義組件都有生命周期

使用Lifecycle的繼承LifecycleOwner

BaseActivity代碼

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

? ? mLifecycleRegistry =new LifecycleRegistry(this);

? ? mLifecycleRegistry.setCurrentState(Lifecycle.State.CREATED);

}

@Override

protected void onStart() {

super.onStart();

? ? mLifecycleRegistry.setCurrentState(Lifecycle.State.START);

}

@Override

protected void onResume() {

super.onResume();

? ? mLifecycleRegistry.setCurrentState(Lifecycle.State.RESUMED);

}

---------------------------------------------------------------

使用的組件中添加下面代碼

private LifecycleOwner mLifecycleOwner;

public void setLifecycleOwner(LifecycleOwner lifecycleOwner) {

mLifecycleOwner = lifecycleOwner;

? ? mLifecycleOwner.getLifecycle().addObserver(new LifecycleEventObserver() {

@Override

? ? ? ? public void onStateChanged(LifecycleOwner source, final Lifecycle.Event event) {

if (event == Lifecycle.Event.ON_CREATE) {

onCreate();

? ? ? ? ? ? }else if (event == Lifecycle.Event.ON_START) {

onStart();

? ? ? ? ? ? }else if (event == Lifecycle.Event.ON_RESUME) {

onResume();

? ? ? ? ? ? }

//其它生命周期自己補(bǔ)全

}

});

}

public void onCreate() {

Log.e(TAG, "onCreate:");

}

public void onStart() {

Log.e(TAG, "onStart:");

}

public void onResume() {

Log.e(TAG, "onResume:");

}

-----------------------------------------

調(diào)用的地方 直接 使用該組件 xxxxView..setLifecycleOwner(this);

聲明一下 網(wǎng)上喜歡搞文章的能不能把你們的用法和原理分開寫,那么多東西你自以為很牛,你以為總是你以為的,新手想上路都困難,請(qǐng)你們不要給android 新手開發(fā)增加難度了,大嬸們

這就是lifecicle jetpack地址 https://github.com/la149457357/jetpack 歡迎點(diǎn)贊。。謝謝大家

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

友情鏈接更多精彩內(nèi)容