Android中使用Handler在主线程和子线程中传消息报空指针异常

yezifeil 2016-03-16 11:48:37
handler在主线程中定义,子线程中往主线程发消息,消息不空,但是主线程中无法获取到
代码如下:
主线程:
if (conn == null) {
conn = new ConnectServer(msg,LoginActivity.this);
Log.e(TAG, "成功" );
}
conn.start();
public final Handler mHandler = new Handler(){
public void handleMessage(Message msg) {
Log.e("系统消息", "handler传值回来");
String login=(String)msg.obj;


};
};

子线程:
public ConnectServer(String message,LoginActivity login){

sendmsg = message;
//this.handler = handler;
this.login = login;
}
public void run() {
String backmsg = "9999";
Message msg = Message.obtain();
msg.obj = backmsg;

login.mHandler.sendMessage(msg);}
...全文
184 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yezifeil 2016-03-21
  • 打赏
  • 举报
回复
我发现这个出现的问题在于返回主线程的消息只能在handler中有效,在之外的地方获取都是空值。
yezifeil 2016-03-21
  • 打赏
  • 举报
回复
问题暂时这样解决吧
ganshenml 2016-03-19
  • 打赏
  • 举报
回复
错误日志贴出来
摘星猿 2016-03-19
  • 打赏
  • 举报
回复
你 写消息的时候最好 是用msg.what 区分下 消息类型 携带数据 应该用Bundle 去携带 数去Bundle bundle=new Bundle(); bundle.putStringExtre("shuju","9999") msg.setData(bundle) 然后 sendmessage(msg);

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧