handler更新ui线程的基本用法
1.因为费时操作要放子线程,更新UI要放UI线程(主线程),所以子线程和主线程通信,通信的话要用到handler这个东西。
这里讲的比较简单,举2个例子说明
2.使用post的是handler ,使用message的是handler2
public class MainActivity extends AppCompatActivity { private TextView textView; private Handler handler = new Handler(); private Handler handler2=new Handler(){ @Override public void handleMessage(Message msg) { switch (msg.what){ case 1: textView.setText(msg.obj.toString()); } } }; Button button; private static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView =findViewById(R.id.textview); new Thread(){ @Override public void run() { Message message = new Message(); //区分标志 message.what=1; //传参到ui线程 message.obj=123123; handler2.sendMessage(message); } }.start(); new Thread(){ @Override public void run() { handler.post(new Runnable() { @Override public void run() { textView.setText("fjidfjiijisdf"); } }); } }.start(); } }
3. 实例化handler在其他线程的时候要下面这样写
private Handler handler = new Handler(Looper.getMainLooper());
转载于:https://www.cnblogs.com/norm/p/8270486.html
handler更新ui线程的基本用法相关推荐
- 子线程中更新UI线程的三个方法
1.通过handler方式,sendmessage. 多个类间传递比较麻烦,也懒的写... 2.线程中通过runOnUiThread() new Thread() { public void run( ...
- android Handler更新UI
android中经常需要更新界面某个元素的值,但是在主线程中是不可以直接更新主线程的值.这里推荐通过handler机制来更新值. 一Handler的定义: 主要接受子线程发送的数据, 并用此数据配合主 ...
- AsyncTask更新UI线程的基本原理
2019独角兽企业重金招聘Python工程师标准>>> 首先异步任务做的做多的用来更新UI,至于怎样来跟UI线程进行交互的,我们从源码看起.当我们new AsyncTask<P ...
- Handler更新子线程数据
listView = view.findViewById(R.id.listview);//解析网络数据new Thread() {@Overridepublic void run() {super. ...
- 在Adapter里子线程更新UI线程
代码: ((Activity)context).runOnUiThread(new Runnable() {@Overridepublic void run() {holder.mIvPlay.set ...
- Android子线程更新UI的方法总结
消息机制,对于Android开发者来说,应该是非常熟悉.对于处理有着大量交互的场景,采用消息机制,是再好不过了.有些特殊的场景,比如我们都知道,在Android开发中,子线程不能更新UI,而主线程又不 ...
- 为什么子线程中不能直接更新UI
点击上方"dotNET全栈开发","设为星标" 加"星标★",每天11.50,好文必达 全文约4000字,预计阅读时间8分钟 当初有同事就碰 ...
- 同步上下文(SynchronizationContext) 和 C#中跨线程更新UI的方法总结
同步上下文(SynchronizationContext) 和 C#中跨线程更新UI的方法总结 在C#编程环境中,不允许在工作线程中直接对主线程(UI线程)中的控件进行更新操作.因此,稍微复杂一点的程 ...
- Android中后台线程如何与UI线程交互
我想关于这个话题已经有很多前辈讨论过了.今天算是一次学习总结吧. 在android的设计思想中,为了确保用户顺滑的操作体验.一些耗时的任务不能够在UI线程中运行,像访问网络就属于这类任务.因此我们必须 ...
- java udp 接收不定长_JAVA UDP通信为什么只能接收一次数据,我想要时刻接收数据,并更新UI,大神们帮我看看程序吧?...
// 与UDP数据接收线程通信更新UI线程中EditText控件中的内容 receiveHandler = new Handler() { public void handleMessage(Mess ...
最新文章
- mysql 苏勇,你不知道的Linux使用技巧~
- c++ 截取\r\n问题
- 95. Unique Binary Search Trees II
- C++中的deque、stack、queue及priority_queue
- cypress 的错误消息 - the element has become detached or removed from the dom
- vim插件之cscope的安装与配置
- mysql配置连接远程_MySql配置远程访问
- 人脸检测FDDB评测的详细步骤
- JAVA:实现HillCipher希尔密码算法(附完整源码)
- LocalSolver快速入门指南(连载四十一) -车辆路径调度问题建模指导
- 哈工大2022形式语言与自动机期末
- .Net Core开发学习(一) ——Startup 类
- 计算机与音乐整合的教学设计,小学音乐课程整合研究《郊游》优秀教学设计
- 美元符号 ($) 在 jQuery 中是什么意思?
- 字符串包含单引号加上mybitis${}写法引发的plese exclude tableName or statementId异常
- b区计算机复试国家线,今年调剂太恐怖 B区考研分数线竟比A区高?
- quick-cocos2d-x踩坑记
- java.lang.IllegalArgumentException(求解决)
- Oracle将收购Sun公司
- 【SQL怎么写】查询同一张表中同一个ID对应最新时间的数据记录
热门文章
- DSP_Builder设计方法说明_SinWave
- Spring boot中的Http压缩配置
- python去除\ufeff、\xa0、\u3000
- vue中使用cookie记住用户上次选择(本次例子中为下拉框)
- 【IDEA】IDEA中部署的项目添加Tomcat自带的一些项目
- now.js 0.1.0 发布了
- 博客中插入公式——之在线数学公式生成
- 基于WinPcap获取设备列表
- this与$(this)的区别
- 关于 tag import 和 page import