Handler更新UI的几种方式
2016-11-11 20:50
218 查看
Handler、loop、MessageQueue的工作原理
Message:Handler接收和处理的消息对象 Looper:每个线程只能拥有一个looper.它的loop方法负责读取MessageQueue中的消息,读到信息之后就把消息返回给handler处理 MessageQueue:消息队列。程序创建Looper对象时,会在它的构造器中创建MessageQueue对象
Handler可以有多种不同的方法更新UI.下面的代码分别表示了handler更新ui的三种方法。
(在xml布局文件里面只添加了一个textview,用来测试ui的更新是否成功,此处省略xml文件代码)
代码如下:
public class MainActivity extends Activity {private TextView textView;private Handler handler = new Handler(){@Overridepublic void handleMessage(Message msg) {textView.setText("ok2");//第二种更新ui的方法}};//第一种用handler更新UI的方法private void handler1(){handler.post(new Runnable() {@Overridepublic void run() {textView.setText("ok1");}});}//第二种用handler更新UI的方法private void handler2(){handler.sendEmptyMessage(1);//此处发送消息给handler,然后handler接收消息并处理消息进而更新ui}//第三种用handler更新UI的方法private void handler3(){runOnUiThread(new Runnable() {@Overridepublic void run() {textView.setText("ok3");}});}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView = (TextView) findViewById(R.id.textview);new Thread(){@Overridepublic void run() {try {Thread.sleep(1000);handler1();//第一种更新UI的方法handler2();//第二种更新UI的方法handler3();//第三种更新UI的方法} catch (InterruptedException e) {e.printStackTrace();}}}.start();}}
相关文章推荐
- Android更新ui 的几种方式?Handler 机制(二)
- 面试常客Handler详细解析(更新UI的几种方式)(六)
- Android 更新UI的几种方式
- 搬迁学习笔记1——Handler的基本使用、子线程更新UI的方式
- 浅谈Android几种更新UI的方式
- 安卓子线程更新UI的几种方式
- Handler更新ui的三种方式
- android中的线程执行UI更新方式,以及Handler的初步了解
- Android 更新UI的两种方式--Handler & runOnUiThread
- Android中更新UI的几种方式
- Android 在子线程中更新UI的方式,使用handler
- Android 更新UI的几种方式
- Android异步更新UI的方式之使用Handler的post(Runnabel r)方法
- Handler原理与使用,以及Android中异步更新的UI的方式
- Android 更新UI的几种方式
- Android中更新UI的几种方式
- Android异步更新UI的方式之使用Handler消息传递机制
- Android中多线程编程(三)Handler更新UI的方式
- 安卓学习笔记之Handler更新UI的几种方法及对比
- android中更新UI的几种方式