您的位置:首页 > 移动开发 > Android开发

Android子线程向主线程发送消息实现

2016-02-04 10:32 330 查看
在Android中开发应用的过程中,经常会遇到一些比较耗时的操作,比如网络请求、读取文件等操作。由于Android有一种ANR机制,UI线程阻塞超过5s就会报ANR错误。因此这些耗时的操作需要在子进程里去做。单起一个子线程去做耗时操作,可以解决ANR问题。但同时还有一个问题,就是子线程完成了操作,如何通知主线程即UI线程去做UI方面的更改。这就用到Handler。

    此处讲解的是子线程向主线程发送消息。与主线程向子线程发送消息有所不同。

    
    Handler mHandler = new Handler(){

                

            public void HandleMessage(Message msg){

                    super.HandleMessage(msg);

                    switch(msg.what){

                            case 0:

                                        //Todo something for UI;

                                        break;

                    }      

            }

    };

    new Thread(){

            public void run(){

                    

                    //Todo something. for example,Time-consuming events.

                    Message msg = mHandler.obtainMessage();

                    msg.arg1 = 0;

                    mHandler.sendMessage(msg);

            }

    }.start();

参考:
http://ask.android-studio.org/?/article/101
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android Handler