博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android线程之主线程向子线程发送消息
阅读量:6191 次
发布时间:2019-06-21

本文共 1953 字,大约阅读时间需要 6 分钟。

  和大家一起探讨Android线程已经有些日子了,谈的最多的就是如何把子线程中的数据发送给主线程进行处理,进行UI界面的更新,为什么要这样,请查阅之前的随笔。本篇我们就来讨论一下关于主线程向子线程如何发送数据,这个用的地方也是非常的多,例如当我们为了优化用户体验,我们会在不影响用户使用的情况下进行后台数据更新,好了废话不多说,开始我们今天的讨论。

public class ThreadActivity extends Activity implements OnClickListener{        private Button button1;    private Button button2;    //主线程中的Handler    private Handler firstHandler = new Handler(){        public void handleMessage(android.os.Message msg) {            System.out.println("first:"+Thread.currentThread());            Message message = new Message();            SecondHandler.sendMessageDelayed(message, 1000);//每隔1S向子线程发送一个Message对象        };    };    //子线程中的Handler    private Handler SecondHandler;            @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.four);                init();        into();            }    private void into() {        HandlerThread handlerThread = new HandlerThread("handler Thread");        handlerThread.start();        SecondHandler = new Handler(handlerThread.getLooper()){            @Override            public void handleMessage(Message msg) {                System.out.println("Second:"+Thread.currentThread());                Message message = new Message();                firstHandler.sendMessageDelayed(message, 1000);//每隔1S向主线程发送一个Message对象            }        };    }    private void init() {        button1 = (Button) findViewById(R.id.button1);        button2 = (Button) findViewById(R.id.button2);        button1.setOnClickListener(this);        button2.setOnClickListener(this);    }    @Override    public void onClick(View arg0) {        switch (arg0.getId()) {        case R.id.button1:            firstHandler.sendEmptyMessage(1);            break;                    case R.id.button2:            firstHandler.removeMessages(1);            break;                    default:            break;        }    }}

  布局文件:

 

转载地址:http://ifrda.baihongyu.com/

你可能感兴趣的文章
排序算法 - 堆排序
查看>>
Java016-反射技术
查看>>
优酷1080P的KUX视频如何快速转换成MP4格式
查看>>
Java004-面向对象(基础)
查看>>
大前端时代安全性如何做
查看>>
如何做抖音GIF表情包
查看>>
发布/订阅者模式
查看>>
如何使用PostMan?
查看>>
Weex系列(4) —— 老生常谈的三端统一
查看>>
C++反射机制:可变参数模板实现C++反射
查看>>
不要被集成环境束缚住你前进的脚步
查看>>
数据分析用它就够了 | 37 个场景你要用集算器
查看>>
ES6 系列之 defineProperty 与 proxy
查看>>
深入理解苹果系统(Unicode)字符串的排序方法
查看>>
javaScript面向对象编程-继承(二)
查看>>
python3与Excel的完美结合
查看>>
Class:向传统类模式转变的构造函数
查看>>
egg学习笔记(2)--静态资源,模板(ejs),路由传值
查看>>
axios学习笔记
查看>>
【Go 源码分析】从 sort.go 看排序算法的工程实践
查看>>