Android Handler 异步消息机制 Handler基本概念: Handler主要用于异步消息的处理:当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分逐个的在消息队列中将消息取出,然后对消息进行出来,就是发送消息和接收消息不是同步的处理。 这种机制通常用来处理相对耗时比较长的操作。 Handler 常用方法: post(Runnable) postAtTime(Runnable,long) postDelayed(Runnable long) sendEmptyMessage(int) sendMessage(Message) sendMessageAtTime(Message,long) sendMessageDelayed(Message,long) 以上post类方法允许你排列一个Runnable对象到主线程队列中, sendMessage类方法, 允许你安排一个带数据的Message对象到队列中,等待更新. 个人认为Android 中Handler 很像 Web开发中的Ajax。拿jquery 的$.ajax()方法来举例: $.ajax({ url:"xxxx.jsp", dataType:"text", success:function(message){ // 处理返回的结果} }) 首先我们按老规矩先看Demo的效果图: 1、点击 测试 按钮的开启一条线程处理其他比较耗时的业务,相当于 一个Web页面点击页面的某个按钮后调用javascript 的ajax方法去后台去数据,而本身的页面是没变的。 2、是否是异步的呢?从图二可以看出。先打印出了线程中 “start Thread”,才执行 onClick 方法中的 “OnClick........” 3、下面代码效果等于ajax请求的后台的响应,那Java来说就是 printWriter.prinlt(1); 4、 以下代码相当于ajax的 success:function(message){if(message==1){//do something}} 下面看一下具体代码是怎么实现的: main.xml文件: Activity: |
Android Handler 异步消息机制
最新推荐文章于 2024-05-12 12:07:57 发布