在子线程中,
new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
Handler handler = new Handler(){
public void handleMessage(Message msg) {
tv.setText("handleMessage");
}
};
handler.sendEmptyMessage(0);
}
}).start();
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
Handler handler = new Handler(Looper.getMainLooper()){
public void handleMessage(Message msg) {
tv.setText("handleMessage");
}
};
handler.sendEmptyMessage(0);
}
}).start();
java.lang.NullPointerException
at com.example.adaptertest.MainActivity$2$1.handleMessage(MainActivity.java:54)
程序没有crash,但是并没有更新UI.通过Log,发现并没有执行handlemessage方法。
new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
Looper.prepare();
Looper.loop();
Handler handler = new Handler(){
public void handleMessage(Message msg) {
tv.setText("handleMessage");
}
};
handler.sendEmptyMessage(0);
}
}).start();
new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
Handler handler = new Handler(){
public void handleMessage(Message msg) {
tv.setText("handleMessage");
}
};
handler.sendEmptyMessage(0);
}
}).start();
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
Handler handler = new Handler(Looper.getMainLooper()){
public void handleMessage(Message msg) {
tv.setText("handleMessage");
}
};
handler.sendEmptyMessage(0);
}
}).start();
java.lang.NullPointerException
at com.example.adaptertest.MainActivity$2$1.handleMessage(MainActivity.java:54)
程序没有crash,但是并没有更新UI.通过Log,发现并没有执行handlemessage方法。
new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
Looper.prepare();
Looper.loop();
Handler handler = new Handler(){
public void handleMessage(Message msg) {
tv.setText("handleMessage");
}
};
handler.sendEmptyMessage(0);
}
}).start();