创建于子线程绑定的handler可以在thread的内部进行公共访问修饰符定义,其外部也可调用。但使用不方便,并且不可以直接使用子线程的looper绑定,要通过一系列( 比如:Looper.prepare(),Looper.Loop() )的手段才能初始化,并且得出来的Looper.myLooper()不一定使非空值,总之很麻烦了啦。所以,HandlerThread应运而生。是谷歌自己封装的一个类,很实用哦,请看代码: import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private TextView textView; private Handler handler; private HandlerThread thread; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initEvent(); } private void initEvent() { thread= new HandlerThread("handler thread"); thread.start(); handler = new Handler(thread.getLooper()){ @Override public void handleMessage(Message msg) { //这里就是子线程的操作了。 } }; //直接从UI向绑定子线程的handler发送消息 handler.sendEmptyMessage(0); } private void initView() { textView = findViewById(R.id.textView); } }
使用HandlerThread创建一个与子线程绑定的Handler
最新推荐文章于 2021-05-27 03:02:38 发布