目录
11.Handler消息处理(一)
1.Handler消息传递机制
在Java中,对于一些周期性的或者是耗时的操作通常由多线程来实现,而在Android中,也可以使用Java中的多线程技术。例如,在手机淘宝主界面的上方,对广告进行轮换显示,以及某些游戏中的计时进度条,都应用了多线程技术。
在Android中使用多线程,有一点需要注意:不能在子线程中动态改变主线程中的UI组件的属性。
注:当一个程序第一次启动时,Android会启动一条主线程,用于负责接收用户的输入,将运行的结果反馈给用户,也称为UI线程;而子线程是指为了执行一些可能产生阻塞操作而新启动的线程,也称为Worker线程。
例如,实现单击按钮时创建新线程,用于改变文本框的显示文本,代码如下:
public class MainActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView=findViewById(R.id.main_tv1);
Button button=findViewById(R.id.main_btn1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//创建新线程
Thread thread=new Thread(new Runnable() {
@Override
public void run() {
//要执行的操作
textView.setText("你今天的努力,是幸运的伏笔;当下的付出,是明日的花开");
}
});
thread.start();//开启线程
}
});
}
点击按钮后软件将停止运行,在Logcat面板中输出如图所示的异常信息。