旭日暖阳思密达 2020-02-04 09:23 采纳率: 100%
浏览 548

Handler 如何跨方法 取值? handler 拿到 Message 后赋给全局变量,在其它方法中打印这个全局变量就是空 NULL,求大神指教!!!。

private String getStr;
public void menthodA(String str){
String url = "http://10.0.0.12:8080/testa/test.do"
Map map = new HashMap();
map.put("id", "");
OkHttpManager ok = new OkHttpManager();
ok.postComplexForm(url, map, new OkHttpManager.goBackJsonString() {
@Override
public void onResponse(String result) {
Message msg = new Message();
msg.what = 2;
msg.obj = result;
handler.sendMessage(msg);
}
});
handler = new Handler(){
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
if (msg.what == 2){
getStr = (String)msg.obj;
Log.d("AAA","Print " + getStr);//字符串可以拿到msg
}
}
};
Log.d("AAA","Print_1 " + getStr);//在这里字符串为空!!
}
// 我错在哪儿了?怎样才能将这个hanlder 拿到的msg交个主线程中的全局变量!感谢!

  • 写回答

1条回答 默认 最新

  • Orion-W 2020-02-25 11:54
    关注

    Log.d("AAA","Print_1 " + getStr);//在这里字符串为空!!这行执行的时候,handler还没有发送消息,Log.d("AAA","Print " + getStr);//字符串可以拿到msg对比这个log的时间,你就发现了

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器