参考:https://blog.csdn.net/heshuyu123/article/details/112198119 写了个帮助类,用法:在自己的application中进行初始化即可
X5InitUtils.init();
帮助类
import android.util.Log;
import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.SPUtils;
import com.hjqjl.whdemo.app.MyApplication;
import com.tencent.smtt.export.external.TbsCoreSettings;
import com.tencent.smtt.sdk.QbSdk;
import com.tencent.smtt.sdk.TbsDownloader;
import com.tencent.smtt.sdk.TbsListener;
import java.util.HashMap;
public class X5InitUtils {
public static final String TAG = "WordReadHelper";
private static boolean mInit = false;
private X5InitUtils() {
}
public static void init() {
resetSdk();
QbSdk.setTbsListener(new TbsListener() {
@Override
public void onDownloadFinish(int i) {
if (i != 100) {
initFinish();
}
Log.d(TAG, "=========load" + i);
}
@Override
public void onInstallFinish(int i) {
mInit = true;
Log.d(TAG, "=========finish" + i);
}
@Override
public void onDownloadProgress(int i) {
Log.d(TAG, "=========progress" + i);
}
});
QbSdk.initX5Environment(MyApplication.getInstance(), new QbSdk.PreInitCallback() {
@Override
public void onCoreInitFinished() {
Log.e(TAG, "X5加载内核完成");
}
@Override
public void onViewInitFinished(boolean b) {
mInit = b;
Log.e(TAG, "X5加载内核是否成功:" + b);
if (!mInit && !TbsDownloader.isDownloading()) {
LogUtils.v("initFinish");
initFinish();
}
SPUtils.getInstance().put(TBS_INIT_KEY, mInit);
}
});
}
private static void resetSdk() {
HashMap<String, Object> map = new HashMap<>();
map.put(TbsCoreSettings.TBS_SETTINGS_USE_SPEEDY_CLASSLOADER, true);
map.put(TbsCoreSettings.TBS_SETTINGS_USE_DEXLOADER_SERVICE, true);
QbSdk.initTbsSettings(map);
QbSdk.setDownloadWithoutWifi(true);
}
private static final String TBS_INIT_KEY = "tbs_init_key";
public static boolean initFinish() {
if (SPUtils.getInstance().getBoolean(TBS_INIT_KEY, false)) {
return mInit;
}
if (!mInit && !TbsDownloader.isDownloading()) {
QbSdk.reset(MyApplication.getInstance());
resetSdk();
TbsDownloader.startDownload(MyApplication.getInstance());
}
return mInit;
}
}
代码示例中的SPUtils就是SharedPreferences,自己实现即可
|