Android Thread中读取到的数据,赋值给一个全局变量,再使用全局变量的时候,第一次为空,怎么保证有数据 10

publicclassMainActivity2extendsAppCompatActivityimplementsView.OnClickListener{privat... public class MainActivity2 extends AppCompatActivity implements View.OnClickListener{ private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case msgKey: tvReceiveData.append(mSb.toString()); tvReceiveData.append("\n"); } } }; private class ReadThread extends Thread { @Override public void run() { // TODO Auto-generated method stub super.run(); while (!isInterrupted()) { int size; try { byte[] buffer = new byte[20]; Log.e(TAG, "----ReadThread start----"); if (mInputStream == null) { Log.e(TAG, "----mInputStream=null----"); return; } Log.e(TAG, "----read(buffer)----"); size = mInputStream.read(buffer); Log.e(TAG, "----size----" + String.valueOf(size)); if (size > 0) { mSb = new StringBuffer(); mSb.append(MyFunc.ByteArrToHex(buffer)); Log.e(TAG, "readresult=" + mSb.toString()); result=mSb.toString(); msg = new Message(); msg.what = msgKey; mHandler.sendMessage(msg); } } catch (IOException e) { Log.e(TAG, "----ReadThread printStackTrace----"); e.printStackTrace(); return; } } } } @Override public void onClick(View view) { switch (view.getId()){ case R.id.btn_open: try { mSerialPort = new SerialPort(new File(etComNumber.getText().toString().trim()), 9600,0); mOutputStream = mSerialPort.getOutputStream(); //写 mInputStream = mSerialPort.getInputStream();//读 mThread = new ReadThread(); mThread.start(); tvReceiveData.append("打开串口"+"\n"); } catch (IOException e) { e.printStackTrace(); } break; private String GetSerialNumber(){ String TX1="0101000000000000000000000000000000007188"; etCommand.setText(TX1); senddata(TX1); if (result!=null){ return result; }else { return "---"; } } } 展开
 我来答
淘小猪啦
2018-01-14 · TA获得超过682个赞
知道小有建树答主
回答量:321
采纳率:68%
帮助的人:122万
展开全部
将result的值通过msg和handler传到主线程就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
类人界异
2018-01-10 · TA获得超过1313个赞
知道小有建树答主
回答量:349
采纳率:73%
帮助的人:75.7万
展开全部
参考java多线程编程的生产者消费者模式例子
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式