Android学习之子线程更新UI的方法
2023-09-11 14:20:36 时间
我们知道Adnroid
除了主线程,子线程都不能操作UI,今天特地来总结一下关于子线程更新UI的两种方式。
一、使用runOnUiThread()
/*
使用runOnUiThread的方式
*/
View.OnClickListener btnClickListener = new View.OnClickListener() {
@Override
public void onClick(View view) {
runOnUiThread(new Runnable() {
@Override
public void run() {
textView.setText("CLAY");
}
});
}
};
二、使用Handler
/*
主线程中创建Handler接收消息进行相应的处理
*/
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
if(msg.what == 1) {//msg.what可在线程间传递数据
textView.setText("CLAY");
}
super.handleMessage(msg);
}
};
/*
子线程使用Handler的方式发送消息
*/
View.OnClickListener btnClickListener = new View.OnClickListener() {
@Override
public void onClick(View view) {
new Thread(new Runnable() {
@Override
public void run() {
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
}).start();//注意此处需要启动start
}
};
...
三、使用View.post
的方法
buttonConnect.post(new Runnable() {
@Override
public void run() {
buttonConnect.setText("连接");
Toast.makeText(getApplicationContext(), "与服务器断开连接", 500).show();
}
})
相关文章
- [Android]中文API(三)android.account包下的那些类
- Android开发之杂记(3)
- Android 百度定位SDK(v6.1.3)结合方向传感器
- Android API之android.os.AsyncTask
- Android Matrix类以及ColorMatri
- Android NFC开发(二)——Android世界里的NFC所具备的条件以及使用方法
- 文件_ _android从资源文件中读取文件流并显示的方法
- EasyPlayer RTSP 安卓Android播放器显示模式设置方法
- Android 异常解决方法【汇总】
- 【Android】android studio ndk使用例子
- Android版OpenCV图像处理技术亲自验证[二十一]之高斯模糊(附源码)
- Android开发学习笔记(九)主题与样式
- 熬夜再战Android之修炼Kotlin-互操作篇
- Android 10 如何关闭selinux权限
- Android Studio怎么快速生成set方法和get方法
- Android【报错】This class should be public (android.support.v7.internal.widget.ActionBarView.HomeView)
- Android setSystemUiVisibility方法详解
- Android【报错】java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.Bu
- Android 解决Toast不显示
- Android 9.0 禁止拖拽hotseat到其他屏功能实现
- Android 10.0 修改系统CPU频率(CPU频率作假)
- Android Listview 自定义实现局部刷新(非notifyDataSetChange())
- Android JNI学习(三)——JNI的常用方法的中文API
- Android android studio 项目放在源码中编译
- 【Android 逆向】Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )
- 【Android 异步操作】线程池 ( 线程池简介 | 线程池初始化方法 | 线程池种类 | AsyncTask 使用线程池示例 )
- Android使用帧动画内存溢出解决方法
- Android Studio下“Error:Could not find com.android.tools.build:gradle:2.2.1”的解决方法
- 【Android进阶篇】最新Android源码精编解析,有效阅读源码的法门
- Android蓝牙系统详解