码迷,mamicode.com
首页 > 其他好文 > 详细

TimerTask中如何通过Handler交由UIThread更新UI

时间:2014-10-31 22:10:29      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:多线程   ui线程   

有两种方式:

第一种:post给Handler

        // 开启线程刷新
        handler = new Handler();

        timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        mTextLat.setText(AppContext.getLatitude()+"");
                        mTextLng.setText(AppContext.getLongitude()+"");
                    }
                });
            }
        },0,1*1000);

第二种:给Handler发信息

// 开启线程刷新
        handler = new Handler(){
            @Override
            public void handleMessage(Message msg) {
                switch (msg.what) {
                    case 1:
                        mTextLat.setText(AppContext.getLatitude()+"");
                        mTextLng.setText(AppContext.getLongitude()+"");
                }
                super.handleMessage(msg);
            }
        };

        timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                Message msg = new Message();
                msg.what = 1;
                handler.sendMessage(msg);
            }
        },0,1*1000);

第二种的优势在于主线程能够处理多个线程传递来的信息从而更新不同的UI,而且层次上更加分明。

TimerTask中如何通过Handler交由UIThread更新UI

标签:多线程   ui线程   

原文地址:http://blog.csdn.net/zsg2063/article/details/40661397

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!