首页 > 其他分享 >每日记录(十三)2023.03.05

每日记录(十三)2023.03.05

时间:2023-03-05 22:12:07浏览次数:42  
标签:NETWORK 05 十三 2023.03 PROCESS Handler intent msg Intent

Handler和消息处理

上节中提到,不同线程间如何通信,Handler就是一个易用的方案。如果把各个线程比作各干各活的工人,Handler就像是个中间人,负责把各个工人传来的消息进行处理,并有权操作UI线程中的组件,比如更新TextView的文字(非UI线程是不能操作的)。“工人”如何给Handler发一条消息?实现起来很简单,比如网络请求处理成功以后:

private final int NETWORK_PROCESS_OK = 1;//定义一个数字代号代表网络处理成功
private final int NETWORK_PROCESS_FAIL = 0; //代表网络处理失败
Message msg = handler.obtainMessage();//需要保证此时Handler的实例handler已经实例化不为空。
msg.what= NETWORK_PROCESS_OK;
msg.sendToTarget();
//失败以后也可以传回原因:
Message msg = handler.obtainMessage();
msg.what= NETWORK_PROCESS_FAIL;
msg.obj=reason;//reason一般是String,但可以是任何Object
msg.sendToTarget();

而Handler接收到消息后的处理一般如下:

handler = new Handler(){
     public void handleMessage(Message msg) {  
            switch (msg.what) {  
            case NETWORK_PROCESS_OK:  
                textview.setText("处理成功!");  
                break; 
           case  NETWORK_PROCESS_FAIL:  
                textview.setText("处理失败!原因:" + msg.obj.toString());  
                break;
            }  
        };  
};

 

3.3.4 Activity间的跳转

Activity间使用Intent类进行跳转和数据传输,具体如下:

Intent intent = new Intent(this,TargetActivity.class);//this是一个Activity对象
intent.putExtra(“param1”,paramString1);//通过intent传送额外数据,可以在目标Activity中,使用getIntent()获取传入的intent对象,利用该intent对象的getStringExtra()接受传入的String类型参数,当然也有其它类型的,此处不列举。
startActivity(intent);

值得注意的是,Intent所能传输的数据容量是有上限的,过多的数据不建议使用Intent进行传输。

标签:NETWORK,05,十三,2023.03,PROCESS,Handler,intent,msg,Intent
From: https://www.cnblogs.com/xiao-hong111/p/17181873.html

相关文章

  • 2022年第十三届蓝桥杯大赛软件类省赛C/C++大学A组真题
    Preface周末没什么比赛打索性开始准备下蓝桥杯,然后就想着找一下去年的真题来做一下结果yysy去年的真题说实话有点难度的,感觉出题风格偏向OI比赛而和ACM的风格不太像啊感......
  • 05-Redis系列之-主从复制配置和优化,fork和aof两大阻塞
    主从复制原理一台主服务器配多台从服务器,主服务器宕机后,从服务器挑选一台顶上去。从服务器同步主服务器的数据,这个同步是单向的,并且从服务器不能设置值,否则会造成数据的......
  • 2023/03/05刷题
    链接A.Domino这个题还是比较有意思的.我们可以统计左边奇数的数量和右边奇数的数量,然后还需要统计一下左边和右边奇偶性不同的个数.(因为这样的一对数才能翻转.)最后综......
  • 杂题小记(2023.03.01)
    杂题小记(2023.03.01)目录杂题小记(2023.03.01)更好的阅读体验戳此进入[ARC084D]SmallMultiple题面SolutionCodeLG-P2371[国家集训队]墨墨的等式题面SolutionCodeLG-P2158......
  • AGC051E[Middle Point] 题解
    条件转化我们记:\[M=\{x|x=\frac{a}{2^b},a,b\in\mathbb{Z}\}\\M^*=\{x|x\inM,x\ge0\}\]令下文向量均为二维向量,记给定点集为\({\vec{p_n}}\)那么原题即为求满足\(......
  • unity3D控制手枪的旋转05
    新建脚本文档要达到鼠标控制手枪的旋转确定枪的旋转角度usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassGunManage......
  • 05for循环
    for循环循环的作用与分类作用:让代码更加高效的重复运行分类:for循环和while循环for循环结构for临时变量in可迭代对象:重复执行的代码1重复执行的代码2...可......
  • HDOJ 2051-2060
    2050BitsetProblemDescriptionGiveyouanumberonbaseten,youshouldoutputitonbasetwo.(0<n<1000) InputForeachcasethereisapostivenumbern......
  • 第十三节:跨域产生的原因及常用跨域方案的总结(同源部署、CORS、代理、Nginx等)
    一.        二.        三.         !作       者:Yaopengfei(姚鹏飞)博客地址:http://www.cnblog......
  • 轻量级CI/CD发布部署环境搭建及使用_05_安装宿主机环境(jdk、nodejs、maven、python2)
    轻量级CI/CD发布部署环境搭建及使用_05_安装宿主机环境(jdk、nodejs、maven、python2)尽自己的绵薄之力,为开源技术分享添砖加瓦本篇幅较多,请按步骤实验安装,截图中涉及的......