為什么myThread.handler.sendEmptyMessage(1);這行會報空指針異常啊
package com.example.android_handler_01;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.widget.TextView;
public class MainActivity extends Activity {
private Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
};
};
class MyThread extends Thread{
public Handler handler;
@Override
public void run() {
Looper.prepare();
handler = new Handler(){
@Override
public void handleMessage(Message msg) {
System.out.println("currentThread"+Thread.currentThread());
}
};
Looper.loop();
}
}
private MyThread myThread;?
? ? @Override
? ? protected void onCreate(Bundle savedInstanceState) {
? ?
? ? ? ? super.onCreate(savedInstanceState);
? ? ? ??
? ? ? ? TextView textView = new TextView(this);
? ? ? ? textView.setText("hello everyone");
? ? ? ? setContentView(textView);
? ? ? ??
? ? ? ? myThread = new MyThread();
? ? ? ? myThread.start();
? ? ? ??
? ? ? ? myThread.handler.sendEmptyMessage(1);
? ? }
}
2016-01-08
?myThread.handler為空,所以在myThread.start();后面添加Thread.sleep(500);休眠半秒鐘 讓myThread.handler在run中創(chuàng)建,保證myThread.handler不為空
2022-03-24
不會的啊,其它童鞋下載之后沒出現(xiàn)這個問題,你在試試^_^...calss.this.(屬性 方法)
2015-12-02
知道了。