码迷,mamicode.com
首页 > 编程语言 > 详细

用Handler的post()方法来传递线程中的代码段到主线程中执行

时间:2014-07-31 23:16:40      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:android   style   blog   color   os   文件   2014   art   

自定义的线程中是不能更新UI的,但是如果遇到更新UI的事情,我们可以用handler的post()方法来将更新UI的方法体,直接传送到主线程中,这样就能直接更新UI了。Handler的post()方法就是将Runnable中的代码段传送到主线程。

布局文件就是个textView,我就不贴了。

全部代码

package com.kale.handler;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.widget.TextView;

/**
 * @author:Jack Tony
 * @tips  :将自己线程中的代码段传递到主线程中执行,用post方法就可以把runnable中的代码进行传递了。
 * @date  :2014-7-31
 */
public class MainActivity extends Activity {
    TextView valueTv;
    public Handler mHandler;
    private MyThread thread;
    // 定义一个自己的线程
    class MyThread extends Thread {
        @Override
        public void run() {
            System.out.println("线程开始运行");
            Runnable r = new Runnable() {
                @Override
                public void run() {
                    valueTv.setTextColor(Color.RED);
                    valueTv.setTextSize(30);
                    valueTv.setText("从线程中传过来的代码段");
                    System.out.println("执行runnable代码的线程:"+Thread.currentThread().getName());
                }
            };
            //上面代码中的runnable线程体经过post后会直接传送到主线程中执行修改字体的操作。
            //post直接可以把一段代码当做变量一样传递,但是请不要传送耗时操作的代码到主线程中
            mHandler.post(r);
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        valueTv = (TextView)findViewById(R.id.vale_textView);
        mHandler = new Handler();
        thread = new MyThread();
        // 启动线程
        thread.start();
    }


    
}

 

用Handler的post()方法来传递线程中的代码段到主线程中执行,布布扣,bubuko.com

用Handler的post()方法来传递线程中的代码段到主线程中执行

标签:android   style   blog   color   os   文件   2014   art   

原文地址:http://www.cnblogs.com/tianzhijiexian/p/3883537.html

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