微信小程序 - 使用TIMSDK,按照官方例子: import TIM from 'tim-wx-sdk' import COS from "cos-wx-sdk-v5" ..... ..... ..... let tim = TIM.create({SDKAppID: xxxx}) tim.setLogLevel(0) tim.registerPlugin({'cos-js-sdk': cos}) .... .... tim.login(.....) 1)报错UploadController 没有检测到上传插件,文件上传功能将无法使用 2) 使用wx.chooseImage(... function(res) { 用得到的res 来调用 tim.createImageMessage() }) createImageMessage 失败 MessageController.createImageMessage(), error: {}
我找到了一个非常简单的答案:isAdded()
:
true
如果该片段当前被添加到其活动中。
@Override
protected void onPostExecute(Void result){
if(isAdded()){
getResources().getString(R.string.app_name);
}
}
避免onPostExecute
被调用时,Fragment
没有附加到Activity
是取消AsyncTask
当暂停或停止Fragment
.然后isAdded()
不再有必要了。
如果你扩展Application
初始化并维护一个静态的“global”上下文对象,如下所示,然后你可以使用它而不是该活动来加载字符串资源。
public class MyApplication extends Application {
public static Context GLOBAL_APP_CONTEXT;
@Override
public void onCreate() {
super.onCreate();
GLOBAL_APP_CONTEXT = this;
}
}
如果你用这个,你就能逃脱Toast
和资源加载而不用担心生命周期。