dro*_*ski 18 java multithreading android
我有Thrad和Handler:
Handler handler = new Handler() {
@Override
public void handleMessage(android.os.Message msg) {
super.handleMessage(msg);
//do somethink
}
};
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
//do somethink
msg.obj = 1;
handler.sendMessage(msg);
thread.interrupt();
}
});
Run Code Online (Sandbox Code Playgroud)
当应用程序启动时,第一次启动thread.start(); 一切正常.但是当我尝试启动thread.start(); 第二次从我有按钮:
E/MessageQueue-JNI:java.lang.IllegalThreadStateException:线程已经启动.
The*_*der 36
您应该在启动之前检查该线程的状态.
if (thread.getState() == Thread.State.NEW)
{
thread.start();
}
Run Code Online (Sandbox Code Playgroud)
创建一个线程不是一个好主意.您必须检查线程是否已经启动.如果Thread尚未启动
if(!thread.isAlive()){
thread.start();
}
Run Code Online (Sandbox Code Playgroud)
更好的想法是创建新的Thread实例.
| 归档时间: |
|
| 查看次数: |
22466 次 |
| 最近记录: |