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

转载 2016年08月30日 15:46:31


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();
  }


  
}

Android如何执行一个不确定当前处于在子线程还是主线程中的UI操作

Android执行一个不确定当前处于在子线程还是主线程中的UI操作
  • canot
  • canot
  • 2016年01月25日 10:28
  • 2620

在子线程中利用主线程的Handler的post()方法

package cc.testui1; import android.os.Bundle; import android.os.Handler; import android.view.View; ...

Handler post()等在子线程中更新主线程的UI的方法使用小汇

一直没怎么使用过 handler.post()看到很多地方别人都用到,所以漏出两段代码来练练手 /**  * 总结View.post(),handler.post()方法:有在子线程...

android_UIThread 主线程 AsynTask Handler View.post

来自androidDeveloper 的好文章。  http://developer.android.com/guide/practices/design/responsiveness.html 简单...

非UI主线程如何弹出Toast以及Handler.post()流程分析

Android系统中丰富的图形界面都依赖于UI主线程的渲染,如果我在Service里边想修改UI界面呢,比如弹出Toast或者Dialog之类的需求,那就需要Service和UI线程取得通信,通过UI...

MFC主线程安全关闭子线程的方法:使用PostThreadMessage在Win32线程间传递消息

PostThreadMessage的原型是这样的 BOOL PostThreadMessage( DWORD idThread,     UINT Msg,     WPARAM wPara...

使用Handler子线程向主线程通信方式及源码解析

第一步:在主线程中,申明并定义Handler对象。 private Handler mHandler = new Handler() { ...

Android主线程、子线程通信(Thread+handler)

Android是基于Java的,所以也分主线程,子线程!  主线程:实现业务逻辑、UI绘制更新、各子线程串连,类似于将军;  子线程:完成耗时(联网取数据、SD卡数据加载、后台长时间运行)操作,类...

Android--Handler(承担着子线程和主线程之间的通信)

Handler类出现的背景: 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件, 进行事件分发, 比如说, 你要是点击一个 Butt...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用Handler的post()方法来传递线程中的代码段到主线程中执行
举报原因:
原因补充:

(最多只允许输入30个字)