IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android异步消息机制 -> 正文阅读

[移动开发]Android异步消息机制

Java多线程https://blog.csdn.net/qq_45923275/article/details/119295978?spm=1001.2014.3001.5502icon-default.png?t=L892https://blog.csdn.net/qq_45923275/article/details/119295978?spm=1001.2014.3001.5502? ? ? ? 更新ui的操作推荐交给创建这个ui的原始线程来操作,原因是如果给ui加锁保证它的线程安全性,会降低访问效率,而在线程不安全的ui中通过多个线程进行操作会出现不可控的情况。

? ? ? ? 安卓推荐使用Handler来实现异步处理,从而规避线程不安全的问题。在安卓中的异步消息处理机制中有四个角色,Message是消息的封装,整型属性属性what用于标识消息类型,org属性用于传递对象。Handler用于处理消息,可以传入一个包含handleMessage方法的回调接口。MessageQueue是消息队列,用于存储Handler发送的消息,单个线程只能有一个消息队列。

Looper是循环器的意思,开启loop方法后会不断从消息队列中读取新消息然后回调dispatchMessage方法。具体来说,Looper开启loop方法会不断调用looponce方法,在其中会尝试调用msg的target对象(Handler)的回调接口中的方法.

        TextView textView=findViewById(R.id.text);

        //传入回调接口中的值是handleMessage函数
        Handler handler=new Handler(new Handler.Callback() {
            @Override
            public boolean handleMessage(@NonNull Message msg) {
                switch (msg.what){
                    case 1:
                        textView.setText((String)msg.obj);
                }
                return true;
            }
        });
        //开个子线程,向母线程handler发送一个值为1包含一个字符串对象的消息。
        new Thread(()->{
            findViewById(R.id.button).setOnClickListener(v -> {
                Message message=new Message();
                message.what=1;
                message.obj="nmsl";
                handler.sendMessage(message);
            });
        }).start();

Android提供了异步消息处理机制的封装类,即Async(异步)Task类,可以避免直接使用Handler等类来进行ui更新

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-10-08 11:54:36  更:2021-10-08 11:55:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:58:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码