Android Handler
Android handler
2023-09-14 09:08:41 时间
Android中不允许子线程修改页面,需要使用Handler解决。
示例:
public class HandlerPostActivity1 extends Activity { private Button btnMes1,btnMes2; private TextView tvMessage; // 声明一个Handler对象 private static Handler handler=new Handler(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.message_activity); btnMes1=(Button)findViewById(R.id.btnMes1); btnMes2=(Button)findViewById(R.id.btnMes2); tvMessage=(TextView)findViewById(R.id.tvMessage); btnMes1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 新启动一个子线程 new Thread(new Runnable() { @Override public void run() { // tvMessage.setText("..."); // 以上操作会报错,无法再子线程中访问UI组件,UI组件的属性必须在UI线程中访问 // 使用post方式修改UI组件tvMessage的Text属性 handler.post(new Runnable() { @Override public void run() { tvMessage.setText("使用Handler.post在工作线程中发送一段执行到消息队列中,在主线程中执行。"); } }); } }).start(); } }); btnMes2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { new Thread(new Runnable() { @Override public void run() { // 使用postDelayed方式修改UI组件tvMessage的Text属性值 // 并且延迟3S执行 handler.postDelayed(new Runnable() { @Override public void run() { tvMessage.setText("使用Handler.postDelayed在工作线程中发送一段执行到消息队列中,在主线程中延迟3S执行。"); } }, 3000); } }).start(); } }); } }
相关文章
- android studio不能输入中文_Android模拟器
- Android Socket通讯 之 表情列表优化、业务逻辑优化
- android onresume方法,非静态方法’onResume’Android Studio
- android onresume函数,Android界面跳转时候onDestroy和onResume的调用顺序
- android okio使用方法,Android 开源框架 Okio 原理剖析「建议收藏」
- android 安装p12证书,如何在Android中使用p12证书(客户端证书)
- android vlc 中文字幕,解决Android版vlc中文乱码问题
- android 验证码短信验证码,Android短信验证码倒计时验证的2种常用方式
- android toast全屏,Android Toast实现全屏显示
- Android n_android 反编译
- Android中ActivityManager学习笔记(1)-MemoryInfo「建议收藏」
- android跳转到相册需要权限,Android打开相册获取图片路径[通俗易懂]
- 【Android 异步操作】手写 Handler ( Handler 发送与处理消息 | Handler 初始化 | 完整 Handler 代码 )
- 【Android 异步操作】手写 Handler ( 消息队列 MessageQueue | 消息保存到链表 | 从链表中获取消息 )
- 【错误记录】Flutter / Android 报错 ( AAPT: error: attribute android:requestLegacyExternalStorage not found )
- 【字节码插桩】Android 签名机制 ( 生成 Android 签名文件 | 分析签名文件 | 签名文件两个密码的作用 | 三种签名方式 )
- 【Android 逆向】ART 函数抽取加壳 ③ ( 禁用 dex2oat 操作 HOOK 点介绍 | 集成 InLineHook )
- [android] 手机卫士欢迎细节和主界面详解手机开发
- android 实现淘宝收益图的折线详解手机开发
- Android系统服务之WindowManager整理详解手机开发
- Android开发之50个常见实用技巧——活用布局详解手机开发
- [android] 看博客学习hashCode()和equals()详解编程语言
- Android中设置只有程序第一次运行才显示的界面实现思路