android Handler Message传递参数,handler子线程和主线程通讯
创建Handler
private Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {switch(msg.what){case 1 : String str1 = msg.getData().getString("text1");//接受msg传递过来的参数String str2 = msg.getData().getString("text2");//接受msg传递过来的参数Log.i("lgq","..ab ==7....11......"+str1);break;}}
};
传递参数
Message msg = new Message();
msg.what = 1;
Bundle bundle = new Bundle();
bundle.putString("text1","梅西的消息传递参数的例子!"); //往Bundle中存放数据
bundle.putString("text2","Time:2016-11-03"); //往Bundle中put数据
msg.setData(bundle);//mes利用Bundle传递数据
handler.sendMessage(msg);//用activity中的handler发送消息
handler子线程和主线程通讯
public class HandleActivity extends AppCompatActivity {public static final String TAG = "MainActivity";private Handler mThreadHandler;private Handler mMainHandler = new Handler(new Handler.Callback() {// 主线程接收到子线程发送的消息@Overridepublic boolean handleMessage(Message msg) {if (msg.obj != null) {Log.e(TAG, msg.obj.toString());mThreadReplyText.setText("收到子线程回复:" + msg.obj.toString());}return true;}});private EditText mMainEditText;private TextView mThreadReplyText;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.handleactivity);mMainEditText = findViewById(R.id.main_edit_text);mThreadReplyText = findViewById(R.id.thread_reply_text);new Thread(new Runnable() {@Overridepublic void run() {Looper.prepare();mThreadHandler = new Handler(new Handler.Callback() {// 子线程接收到主线程发送的消息并回复@Overridepublic boolean handleMessage(Message msg) {if (msg.obj != null) {Message reply = Message.obtain();reply.obj = "主线程说\"" + msg.obj.toString()+"\"";// 在子线程中使用主线程中的Handler对象的引用向主线程发送消息mMainHandler.sendMessage(reply);}return true;}});Looper.loop();}}).start();}public void onClick(View view) {switch (view.getId()) {case R.id.main_send_button:Message message = Message.obtain();message.obj = mMainEditText.getText();// 主线程向子线程发送消息:在主线程中使用子线程中的Handler对象的引用向子线程发送消息if (mThreadHandler != null) {mThreadHandler.sendMessage(message);} else {while (mThreadHandler == null) {Log.e(TAG, "子线程还没有完成ThreadHandler的创建");if (mThreadHandler != null) {Log.e(TAG, "ThreadHandler创建完成!");mThreadHandler.sendMessage(message);}}}break;}} }
android Handler Message传递参数,handler子线程和主线程通讯相关推荐
- Python 多个线程按先后顺序执行,并保持各子线程和主线程的通信
Python 多个线程按先后顺序执行,并保持各子线程和主线程的通信 摘要 最近有个项目使用pyqt5写的界面,界面展示部分作为项目的主线程,另外通过调用Thread,传入不同的参数又设置了五个子线程, ...
- Qt自定义事件实现及子线程向主线程传送事件消息
近期在又一次学习Qt的时候,由于要涉及到子线程与主线程传递消息,所以便琢磨了一下.顺便把有用的记录下来,方便自己以后查询及各位同仁的參考! 特此声明,本篇博文主要讲述有用的,也就是直接说明怎么实现,就 ...
- Unity子线程与主线程交互(委托方式)
Unity Api无法从子线程访问, 但有些操作(例:IO存取文件)又必须子线程运行, 故实现在子线程做耗时操作, 完成后通知主线程更新状态 事件监听方式, 规避回调地狱:https://blog. ...
- MFC子线程访问主线程对话框程序的控件对象
最近在使用 VC 开发软件时需要用到多线程同步来解决开发过程中遇到的问题.本来以为只要象控制台程序一样,在主线程创建子线程,并设置好相应的对象事件就能解决问题,但是等到真正做起来,才在实践中发现原来事 ...
- 19 Handler 子线程向主线程发送信息
案例一 Message创建三种方法: package com.example.day19_handler_demo1;import android.os.Bundle; import android. ...
- 关于handler子线程通知主线程的几种写法
以下是我一年实习中总结的几种子线程中通知主线程的方法 runOnUiThread 注意:context 对象要是 主线程中的Activity,这样强转才可以. runOnUiThread(new Ru ...
- Android笔记(三十一)Android中线程之间的通信(三)子线程给主线程发送消息...
先看简单示例:点击按钮,2s之后,TextView改变内容. package cn.lixyz.handlertest;import android.app.Activity; import andr ...
- 【EventBus】事件通信框架 ( 发送事件 | 判断发布线程是否是主线程 | 子线程切换主线程 | 主线程切换子线程 )
文章目录 前言 一.根据不同的线程模式进行不同的线程切换操作 二.完整代码示例 前言 发布线程发布事件之后 , 消息中心需要转发这些事件 , 并执行相应的订阅方法 ; 在转发的过程中 , 需要针对订阅 ...
- QT子线程与主线程的信号槽通信
最近用QT做一个服务器,众所周知,QT的主线程必须保持畅通,才能刷新UI.所以,网络通信端采用新开线程的方式.在涉及到使用子线程更新Ui上的控件时遇到了点儿麻烦.网上提供了很多同一线程不同类间采用信号 ...
最新文章
- FACTORY设计模式【让吃货也能理解的程序】
- linux 用户态 隐藏进程 简介
- Java 如何有效地避免OOM:善于利用软引用和弱引用
- linux系统ll历史,Linux操作系统原理笔记
- 按键 使用WinHttp实现POST方式用户模拟登录网站
- php下载 微信头像图片_php保存微信用户头像到本地或者服务器的完美方案!
- 【BZOJ3158】千钧一发,网络流之最大权闭合子图
- 深度linux专业版,用Deepin 15.5 SP2专业版的不要换源更新,否则会成为未授权版本...
- TypeScript 的存在削弱了 JavaScript 生态系统?
- 洛谷——P1927 防护伞
- 模拟I2C怎么用--教你使用GPIO口模拟I2C总线协议
- jscript错误代码及相应解释大全( 选择自 jmylf 的 Blog )
- Ubuntu 16.04 使用burg修改开机引导主题
- vue中使用echart实现三维立体图
- torch.randn和torch.rand有什么区别
- iOS 更改webView文字颜色丶文字大小丶背景色的方法
- Activity启动过程详解(Android P)
- ajax如何使用,页面如何调试
- 【北亚数据恢复】Hp DL380服务器raid磁盘故障导致数据库数据丢失的数据恢复案例
- java-php-net-python-拼餐网站计算机毕业设计程序
热门文章
- [vue] 你知道style加scoped属性的用途和原理吗?
- 前端学习(2775):方式2进行路由跳转
- 工作227:小程序学习1开始布局页面
- 前端学习(2646):vue3.0初识
- 前端学习(2511):路径出错
- “约见”面试官系列之常见面试题之第四十五篇CSS优先级(建议收藏)
- 前端学习(1930)vue之电商管理系统电商系统之美化一层循环的UI结构删除业务逻辑实现
- 前端学习(1883)vue之电商管理系统电商系统之每次只能打开一个菜单项并解决边框问题
- 前端学习(1332):mongodb安装
- spring学习(30):定义第一个bean