java – Android Thread.start()CalledFromWrongThreadException
发布时间:2020-12-15 04:19:01 所属栏目:Java 来源:网络整理
导读:我不确定我的提示是否正确,因为我没有得到预期的输出.我有一个类,我在其中调用一个应该启动一个线程的方法. public class MainActivity extends Activity {protected void onCreate(Bundle savedInstanceState) {beginListenForData()} beginListenForData函
我不确定我的提示是否正确,因为我没有得到预期的输出.我有一个类,我在其中调用一个应该启动一个线程的方法.
public class MainActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { beginListenForData() } beginListenForData函数用于启动一个线程并检查数据是否有数据供读取.如果是这种情况,它会读取并更新UI变量: void beginListenForData() { Thread workerThread = new Thread(new Runnable() { @Override public void run() { int bytesAvailable = 3; while(!Thread.currentThread().isInterrupted()) { try { bytesAvailable = mmInStream.available(); if(bytesAvailable > 0) { byte[] packetBytes = new byte[bytesAvailable]; mmInStream.read(packetBytes); bytesAvailable = mmInStream.available(); String s = new String(packetBytes); text.setText(s); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }); workerThread.start(); } } 我没有得到所需的输出.该线程应该读取数据或检查数据是否可用.如果可用,则读取它并将UI变量设置为读取的值. 我正确地执行了吗?我的代码中有什么问题吗? 解决方法
线程无法更新GUI
您可以使用runOnUiThread()方法或使用Handler 编辑:处理程序的示例:How to use an Android Handler to update a TextView in the UI Thread? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |