盈彩体育注册(中国)有限公司
盈彩体育注册(中国)有限公司 您所在的位置:网站首页 盈彩体育注册(中国)有限公司 腾讯X5内核预加载

腾讯X5内核预加载

2024-04-03 05:18:40| 来源: 网络整理

最近在做Webview加载页面的时候,用到了腾讯的X5内核,但是在使用过程中发现每次点击链接时,都会有一定的延迟,之后才能跳转到对应的页面,这体验很不好。。。 所以就抽时间找问题,解决问题。

原因 通过一步一步的调试,发现在加载X5内核的时候,X5内核需要进行一些初始化,这些初始化如果不明确指出运行的线程,它就会在你启动页面的时候,默认在主线程中执行,这就导致了上面的问题出现。

解决问题: 提前初始化X5内核

在Application中就对X5内核进行初始化,而且最好另外开辟服务子线程进行初始化,防止ANR问题。

最终的解决结果:

新增IntentService,初始化X5内核package com.rencarehealth.mirhythm.service;import android.app.IntentService;import android.content.Intent;import android.support.annotation.Nullable;import com.tencent.smtt.sdk.QbSdk;public class X5CorePreLoadService extends IntentService { private static final String TAG = X5CorePreLoadService.class.getSimpleName(); public X5CorePreLoadService() { super(TAG); } @Override protected void onHandleIntent(@Nullable Intent intent) { //在这里添加我们要执行的代码,Intent中可以保存我们所需的数据, //每一次通过Intent发送的命令将被顺序执行 initX5(); } /** * 初始化X5内核 */ private void initX5() { if (!QbSdk.isTbsCoreInited()) { QbSdk.preInit(getApplicationContext(), null);// 设置X5初始化完成的回调接口 } QbSdk.initX5Environment(getApplicationContext(), cb); } QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() { @Override public void onViewInitFinished(boolean arg0) { // TODO Auto-generated method stub //初始化完成回调 } @Override public void onCoreInitFinished() { // TODO Auto-generated method stub } };} 在application的onCreate中,启动该服务,进行初始化 /** * 初始化X5内核 */ private void preInitX5Core() { //预加载x5内核 Intent intent = new Intent(this, X5CorePreLoadService.class); startService(intent); } 最后,别忘了在AndroidManifest.xml中配置服务组件

OK了,再点击Web页面链接,瞬间跳转到页面加载过程!!



【本文地址】 转载请注明 

最新文章

推荐文章

CopyRight 2018-2019 盈彩体育注册(中国)有限公司 版权所有 豫ICP备16040606号-1