码迷,mamicode.com
首页 > 其他好文 > 详细

接受生命周期事件并且做出相应处理

时间:2019-08-19 21:17:52      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:hang   override   move   over   set   des   eric   extends   generic   

LifecycleBoundObserver.java
------------------------------
class LifecycleBoundObserver extends ObserverWrapper implements GenericLifecycleObserver {

@Override
public void onStateChanged(LifecycleOwner source, Lifecycle.Event event) {
if (mOwner.getLifecycle().getCurrentState() == DESTROYED) {
removeObserver(mObserver);
return;
}
activeStateChanged(shouldBeActive());
}

@Override
boolean shouldBeActive() {
return mOwner.getLifecycle().getCurrentState().isAtLeast(STARTED);
}


ObserverWrapper.java
------------------------------
private abstract class ObserverWrapper {

void activeStateChanged(boolean newActive) {
if (newActive == mActive) {
return;
}
// immediately set active state, so we‘d never dispatch anything to inactive
// owner
mActive = newActive;
boolean wasInactive = LiveData.this.mActiveCount == 0;
LiveData.this.mActiveCount += mActive ? 1 : -1;
if (wasInactive && mActive) {
onActive();
}
if (LiveData.this.mActiveCount == 0 && !mActive) {
onInactive(http://www.my516.com);
}
if (mActive) {
dispatchingValue(this);
}
}
————————————————

接受生命周期事件并且做出相应处理

标签:hang   override   move   over   set   des   eric   extends   generic   

原文地址:https://www.cnblogs.com/liyanyan665/p/11379442.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!