更新时间:2024-07-30 GMT+08:00

异步初始化

InitAsync

初始化

1
HWMSdk.initAsync(Application,OpenSDKConfig, SdkCallback)

接口描述

该接口用于异步初始化SDK,进行一些环境准备工作,调用其他接口之前必须先完成异步初始化并收到onSuccess回调。此接口只需要调用一次,调用前必须先注册Activity声明周期的监听,注册行为必须放在Application的onCreate里,主要目的是让sdk内部可以通过监听activity的生命周期获取当前activity,跳转界面,否则可能出现界面无法跳转的情况。

注意事项

1. 对App初始化速度有要求的建议使用异步初始化接口。

2. 请确保初始化完成后再使用SDK的其他功能。

3. 请参照示例代码,在调用异步初始化接口之前先在Application的onCreate里注册Activity生命周期的监听。

方法定义

1
2
3
4
5
6
7
8
/**
 * sdk 异步初始化接口,确保使用UISDK任何其他功能前已经初始化成功
 *
 * @param application 传入的applition,内部转化为applicationContext,用户获取系统资源
 * @param sdkConfig   sdk配置相关
 * @param sdkCallback sdk回调
 */
void initAsync(@NonNull Application application, OpenSDKConfig sdkConfig, SdkCallback<Integer> sdkCallback)

参数描述

表1 参数说明

参数

是否必须

类型

描述

application

Application

当前程序的Application对象。

sdkConfig

OpenSDKConfig

对SDK配置好参数的对象。

SdkCallback

SdkCallback<Integer>

异步初始化结果回调。

示例代码

// 【重要】注册Activity生命周期的监听,必须要在Application的onCreate里注册
registerActivityLifecycleCallbacks(new ActivityLifecycleHandle());

// 演示子线程初始化
new Thread(() -> HWMSdk.initAsync(mApp, sdkConfig, new SdkCallback<Integer>() {
	@Override
	public void onFailed(SDKERR sdkerr) {
		HCLog.e(TAG, "init failed:" + sdkerr.getDescription());
	}

	@Override
	public void onSuccess(Integer integer) {
		HCLog.i(TAG, "init success:" + integer);
                // 继续其他SDK相关逻辑
		mHandler.sendEmptyMessage(0);
	}
})).start();