跳到主要内容

宿主管理

1. 初始化宿主​

未初始化宿主前,宿主状态为 UNAVAILABLE。

TJHostHandle tjHostHandle 调用 createGameHandle 初始化宿主,宿主状态转为 WAITING。

接口原型​

void createGameHandle(Activity activity, Bundle options, OnTJHostCreateHandleListener listener)

参数说明​

参数数据类型必填属性说明
activityandroid.app.Activity是显示宿主视图的 Activity
optionsandroid.os.Bundle否初始化参数,USER_ID、HTTP_CACHE_LIMIT_STORAGE、HTTP_CACHE_PATH 等
options.HTTP_CACHE_PATHString否http 缓存路径
options.HOST_PAUSE_DELAY_MILLISlong否宿主回到后台后延迟暂停 js 引擎, 单位: 毫秒
reassignboolean否true: 等待 destroyGameHandle 调用完成后再创建新的 gameHandle
false: 不销毁, 仅重置 gameHandle
默认值 false, 适用于快速重启宿主 activity
listenerOnTJCreateHandleListener否onSuccess/onFailure 回调,onSuccess 返回 TJGameHandle 实例

2. 重置宿主​

重置 TJGameHandle 实例,宿主状态转为 WAITING。

与 hostHandle.setTag(final Object tag) 搭配使用, 用于标记当前 hostHandle 中的 gameHandle , 避免快速重启宿主所在 activity 引发的状态异常。

接口原型​

void resetGameHandle(Object tag)

参数说明​

参数数据类型必填属性说明
tagjava.lang.Object是用于标记 gameHandle 的 Object

3. 销毁宿主​

销毁 hostHandle 中的 TJGameHandle 实例,宿主状态转为 UNAVAILABLE。

接口原型​

void destroyGameHandle()
void destroyGameHandle(Object tag)

参数说明​

参数数据类型必填属性说明
tagjava.lang.Object否用于标记 gameHandle 的 Object

4. 代码示例​

public class WebglHostSampleActivity extends AppCompatActivity {
private TJHostHandle hostHandle;
private Object mTag;
private WebglHostSampleActivity self;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

self = this;
mTag = System.identityHashCode(this);
Bundle hostBundle = new Bundle();

// TJHostHandle 初始化
TJHostHandle.initialize(this, "sdkKey", "sdkSecret", new OnTJHostHandleInitializeListener() {
@Override
public void onSuccess(TJHostHandle res) {
hostHandle = res;
// 创建 GameHandle
hostHandle.createGameHandle(self, hostBundle, new OnTJHostCreateHandleListener() {
@Override
public void onSuccess(TJHostHandle result) {
hostHandle.setTag(mTag);
}

@Override
public void onFailure(Throwable throwable) {
}
});
}

@Override
public void onFailure(Throwable throwable) {

}
});

}

@Override
protected void onDestroy() {
super.onDestroy();
hostHandle.resetGameHandle(mTag);
}
}