kotlin - Glide生命周期管理-源码流程

如果是Activity:
android.app.FragmentManager fm = activity.getFragmentManager();

如果是Fragment:
android.app.FragmentManager fm = fragment.getChildFragmentManager();

绑定关系:
fm.beginTransaction().add(current, FRAGMENT_TAG).commitAllowingStateLoss();

Glide生命周期管理流程:
Glide.with->
RequestManagerRetriever类->get()
    ->fragmentGet()
    ->getRequestManagerFragment()核心点,把空RequestManagerFragment绑定到activity,监听activity生命周期方法
        使用:fm.beginTransaction().add(current, FRAGMENT_TAG).commitAllowingStateLoss();
RequestManagerFragment类引用:ActivityFragmentLifecycle    
ActivityFragmentLifecycle类实现Lifecycle接口,其中定义了:LifecycleListener
    
LifecycleListener接口,实现生命周期管理,最终回调实现类RequestManager:
    onStart()
    onStop()
    onDestroy()

Lifecycle接口,属于com.bumptech.glide.manager包:
    addListener方法
    removeListener方法
    
RequestManager类:
    -> onStart()
    -> resumeRequests()

RequestTracker类:
    resumeRequests()
    ->request.begin();
    
SingleRequest类:
    begin() -> 实现网络请求
    pause() -> 暂停
    clear() -> 清理释放资源    

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐