private Observer imStatusLiveDataObserver = status -> {
if (status && !isInitialized) {
init();
isInitialized = true;
}
};
不会执行到init方法
MyApplication中也初始化成功并且获取到UserId 以及 Token
执行到了MianActivity中无法初始化 init();
AppService.validateConfig(this);
// 只在主进程初始化,否则会导致重复收到消息
if (getCurProcessName(this).equals(BuildConfig.APPLICATION_ID)) {
// 如果uikit是以aar的方式引入 ,那么需要在此对Config里面的属性进行配置,如:
// Config.IM_SERVER_HOST = "im.example.com";
WfcUIKit wfcUIKit = WfcUIKit.getWfcUIKit();
wfcUIKit.init(this);
wfcUIKit.setAppServiceProvider(AppService.Instance());
MessageViewHolderManager.getInstance().registerMessageViewHolder(LocationMessageContentViewHolder.class, R.layout.conversation_item_location_send, R.layout.conversation_item_location_send);
setupWFCDirs();
SharedPreferences sp = getSharedPreferences(Config.SP_CONFIG_FILE_NAME, Context.MODE_PRIVATE);
String id = sp.getString("id", null);
String token = sp.getString("token", null);
if (!TextUtils.isEmpty(id) && !TextUtils.isEmpty(token)) {
//需要注意token跟clientId是强依赖的,一定要调用getClientId获取到clientId,然后用这个clientId获取token,这样connect才能成功,如果随便使用一个clientId获取到的token将无法链接成功。
//另外不能多次connect,如果需要切换用户请先disconnect,然后3秒钟之后再connect(如果是用户手动登录可以不用等,因为用户操作很难3秒完成,如果程序自动切换请等3秒)
ChatManagerHolder.gChatManager.connect(id, token);
}
Log.e("TAG", "onCreate: "+ChatManagerHolder.gChatManager.getClientId() );
}
初始化是没有问题的