我有MainActivity扩展活动
我在MainActivity中启动线程 名为ThreadHandler的线程扩展了线程
没有“activity.showMessage; s” 它完全正常
这是运行方法
@Override
public void run() {
Log.i("ThreadHandelr","running");
while(true){
try {
String s = streamIn.readUTF();
activity.showMessage(s);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
在MainActivity中有一个名为
的方法public synchronized void showMessage(String s){
Toast.makeText(MainActivity.this,s,0).show();
}
我为ThreadAandler制作了传递MainActivity的构造函数 使用showMessage方法 但是我收到了一个错误 “threadid = 12:线程退出未捕获的异常” “致命的例外:THREAD-124”
抱歉语法不好,因为英语不是我的第一语言tt
结论 如何在线程“run”中使用MainActivity方法
答案 0 :(得分:0)
您应该使用Activity.runOnUiThread()
与来自其他线程的任何UI组件进行交互。这意味着将代码更改为
final String s = streamIn.readUTF();
activity.runOnUiThread(new Runnable() {
public void run() {
activity.showMessage(s);
}
});