写点什么

Glide.with(view) 挂在了谁的生命周期上

用户头像
mengxn
关注
发布于: 2020 年 11 月 19 日

Glide.with(activity)Glide.with(fragment) 我们可以看出 Glide 分别与 activityfragment 的生命周期进行关联。那么,Glide.with(view) 是关联在谁的生命周期上呢?



想要解答这个问题,首先还是得从源码入手。



public static RequestManager with(@NonNull View view) {
return getRetriever(view.getContext()).get(view);
}



public RequestManager get(@NonNull View view) {
...
// 优先使用 fragment,如果 fragment 为空,则使用 activity
if (activity instanceof FragmentActivity) {
Fragment fragment = findSupportFragment(view, (FragmentActivity) activity);
return fragment != null ? get(fragment) : get((FragmentActivity) activity);
}
// Standard Fragments.
android.app.Fragment fragment = findFragment(view, activity);
if (fragment == null) {
return get(activity);
}
return get(fragment);
}



public RequestManager get(@NonNull android.app.Fragment fragment) {
...
// 获取最终加载图片的 RequestManager
return fragmentGet(fragment.getActivity(), fm, fragment, fragment.isVisible());
...
}



从以上源码我们可以看出,当使用 Glide.with(view) 时,首先,会通过view 反查所在 fragment,如果查询不到,再使用activity



那么,我们在平时就可以优先使用 Glide.with(view),因为 Glide 已经帮我们做好了一切。



发布于: 2020 年 11 月 19 日阅读数: 26
用户头像

mengxn

关注

还未添加个人签名 2018.07.25 加入

还未添加个人简介

评论

发布
暂无评论
Glide.with(view)挂在了谁的生命周期上