android Thread+handler 实现UI更新

来源:互联网 发布:程序员穿正装 编辑:程序博客网 时间:2024/05/22 04:34

我们创建的Service、Activity以及Broadcast均是一个主线程处理,这里我们可以理解为UI线程。但是在一些耗时操作时,比如I/O读写的大文件读写,数据库操作以及网络下载等需要很长时间,为了不阻塞用户界面,出现ANR的响应提示窗口,这是时候我们可以考虑使用THread线程来处理。

查阅了一些文档和APIdemo后,发现最常用的方法是利用handler来实现UI线程的更新。

方式为:Handler来根据接受的消息,处理UI更新。Thread线程发出Handler消息,通知更新UI。

 

示例代码:

Handler myHandler = new Handler() {            public void handleMessage(Message msg) {                  switch (msg.what) {                       case TestHandler.GUIUPDATEIDENTIFIER:                            myBounceView.invalidate();                           break;                  }                  super.handleMessage(msg);             }        };
 
class myThread implements Runnable {             public void run() {                 while (!Thread.currentThread().isInterrupted()) {                                               Message message = new Message();                       message.what = TestHandler.GUIUPDATEIDENTIFIER;                                             TestHandler.this.myHandler.sendMessage(message);                       try {                            Thread.sleep(100);                        } catch (InterruptedException e) {                            Thread.currentThread().interrupt();                       }                  }             }        }



 

 

0 0
原创粉丝点击