最近在项目里面频繁的使用到了handler 于是我开始好好的关注了一下这个知识点 下面我从我的理解的角度好好讲解一下Handler.*
从一个handler例子的报错开始 我们一步步的深入了解一下这个知识点
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.util.Log;
@SuppressLint("HandlerLeak")
public class MainActivity extends Activity {
private Handler mHandler;
private final int FLAG = 1;
private final String TAG = MainActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
handlerTest();
}
private void handlerTest() {
new Thread(new Runnable() {
public void run() {
mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
if(msg.what == FLAG){
Log.e(TAG, "收到的消息为:--->>>"+msg.obj);
}
}
};
Message msg = new Message();
msg.what = FLAG;
msg.obj = "Hello Handler!!!";
mHandler.sendMessage(msg);
Looper.loop();
}
}).start();
}
}
上面的例子里面运行后可以看到如下的错误信息:
大家可以看到加红色边框的地方 提示我们调用Looper.prepare(). 那么我就在代码里面子线程的