flutter 跳转 原生页面,懵了(1),绝对干货

}

if (connectivityMonitorFactory == null) {

connectivityMonitorFactory = new DefaultConnectivityMonitorFactory();

}

if (bitmapPool == null) {

int size = memorySizeCalculator.getBitmapPoolSize();

if (size > 0) {

bitmapPool = new LruBitmapPool(size);

} else {

bitmapPool = new BitmapPoolAdapter();

}

}

if (arrayPool == null) {

arrayPool = new LruArrayPool(memorySizeCalculator.getArrayPoolSizeInBytes());

}

if (memoryCache == null) {

memoryCache = new LruResourceCache(memorySizeCalculator.getMemoryCacheSize());

}

if (diskCacheFactory == null) {

diskCacheFactory = new InternalCacheDiskCacheFactory(context);

}

if (engine == null) {

//初始化Engine

engine = new Engine(

memoryCache,

diskCacheFactory,

diskCacheExecutor,

sourceExecutor,

GlideExecutor.newUnlimitedSourceExecutor(),

animationExecutor,

isActiveResourceRetentionAllowed);

}

if (defaultRequestListeners == null) {

defaultRequestListeners = Collections.emptyList();

} else {

defaultRequestListeners = Collections.unmodifiableList(defaultRequestListeners);

}

RequestManagerRetriever requestManagerRetriever = new RequestManagerRetriever(requestManagerFactory);

//初始化Glide

return new Glide(

context,

engine,

memoryCache,

bitmapPool,

arrayPool,

requestManagerRetriever,

connectivityMonitorFactory,

logLevel,

defaultRequestOptionsFactory,

defaultTransitionOptions,

defaultRequestListeners,

isLoggingRequestOriginsEnabled,

isImageDecoderEnabledForBitmaps,

hardwareBitmapFdLimit,

minHardwareDimension);

}

//RequestManagerRetriever.get()通过Glide.with(Context)入参获取FragmentManager

public RequestManager get(@NonNull FragmentActivity activity) {

if (Util.isOnBackgroundThread()) {

return get(activity.getApplicationContext());

} else {

//通过Android版本>17,并且页面已经isDestroyed则抛出异常

assertNotDestroyed(activity);

//通过入参获取FragmentManager

FragmentManager fm = activity.getSupportFragmentManager();

return supportFragmentGet(activity, fm, /parentHint=/ null, isActivityVisible(activity));

}

}

//RequestManagerRetriever.supportFragmentGet()

private RequestManager supportFragmentGet(

@NonNull Context context,

@NonNull FragmentManager fm,

@Nullable Fragment parentHint,

boolean isParentVisible) {

//获取请求fragment

SupportRequestManagerFragment current =getSupportRequestManagerFragment(fm, parentHint, isParentVisible);

//获取fragment中RequestManager 对象,如果fragment是刚刚创建的requestManager 为null

RequestManager requestManager = current.getRequestManager();

if (requestManager == null) {

// TODO(b/27524013): Factor out this Glide.get() call.

Glide glide = Glide.get(context);

//创建requestManager 并设置给fragment

requestManager =

factory.build( glide, current.getGlideLifecycle(), current.getRequestManagerTreeNode(), context);

current.setRequestManager(requestManager);

}

return requestManager;

}

private SupportRequestManagerFragment getSupportRequestManagerFragment(

@NonNull final FragmentManager fm, @Nullable Fragment parentHint, boolean isParentVisible) {

//先查找这个tag的fragment有没有被创建

SupportRequestManagerFragment current = (SupportRequestManagerFragment) fm.findFragmentByTag(FRAGMENT_TAG);

if (current == null) {

//从pendingSupportRequestManagerFragments中在查找一次

current = pendingSupportRequestManagerFragments.get(fm);

if (current == null) {

//如果都为null则new创建

current = new SupportRequestManagerFragment();

current.setParentFragmentHint(parentHint);

if (isParentVisible) {

current.getGlideLifecycle().onStart();

}

//存储

pendingSupportRequestManagerFragments.put(fm, current);

//添加到FragmentManager 中

fm.beginTransaction().add(current, FRAGMENT_TAG).commitAllowingStateLoss();

//发送通知

  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值