android多线程处理的方法以及应用场景
在学习android时会碰到多线程的情况,不知道应用场景,所以自己总结一下
1)新建一个类继承自Threadh(或者实现Runnable接口),创建线程。然后重写父类的run()方法,并在里面编写耗时逻辑。
private class Mythread extends Thread {public void run() {// 编写具体的逻辑 }}
在主线程中启动此线程时输入
new Mythread().start();
应用场景:是java创建线程的方法,在android不常用,android有自己的方法,只用在不涉及更新ui时,才会使用。
2)android采用异步消息处理机制。在主进程中只发送消息,并不执行操作也不关心操作结果。
- 使用Handler的post(mRunnable)方法。post(mRunnable)的会调用Runnable对象,执行Runnable对象里的run()方法。
- 使用Handler的handler.sendMessage(message)方法,将Message对象发送出去。在Handler中handleMessage()方法中接收Message对象,再根据message.what的值(int)执行相应操作。
- 新建一个类继承自AsyncTask,会创建子线程,可以通过重写onPreExecute( ),doInBackground( ), onProgressUpdate( ),onPostExecute( )进行界面初始化,处理耗时任务,更新界面元素,返回的数据等复杂操作。
新建一个类在主线程中启动时输入:
new MyAsyncTask().execute();
注意:Handler方法只是发送消息,在接收消息的地方执行命令,不会新建子线程。在主进程中发送消息并不执行操作,所以不堵塞主进程,但是如果操作太耗时,仍会在接收处堵塞主进程。
应用场景:在进行需要根据message.what的值进行判断的任务使用handleMessage()。需要自我调用的,不断更新的使用post(mRunnable)方法。会堵塞主进程的功能使用AsyncTask。
android多线程处理的方法以及应用场景相关推荐
- android的四大组件及使用场景,Android/四大组件/Activity.md · BoraxZYF/AndroidInterview - Gitee.com...
## 四大组件 ## Activity ### Activity 的四种启动模式及使用场景 - standard 标准模式,Activity 的默认启动模式.每次启动一个 Activity 时都会创建 ...
- 探索 Android 多线程优化方法
前言 1. 基本介绍 在我学习 Android 多线程优化方法的过程中,发现我对多线程优化的了解太片面. 写这篇文章的目的是完善我对 Android 多线程优化方法的认识,分享这篇文章的目的是希望大家 ...
- 三代测序的基本原理、组装方法和应用场景
三代测序的基本原理.组装方法和应用场景 PB/Nanopore测序原理及优缺点介绍 PB:光信号,荧光基团结合碱基测序 Nanopore:电信号 优点 无GC偏好性 缺点 错误率较高 有效孔只有三分之 ...
- android phonegap插件开发方法 plugin
2019独角兽企业重金招聘Python工程师标准>>> android phonegap插件开发方法 plugin 分类: phonegap 2014-03-03 22:41 59 ...
- Android getWindow().setFlags方法
Android getWindow().setFlags方法 //设置窗体全屏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCR ...
- android+发邮件,Android发送邮件的方法实例详解
Android发送邮件的方法实例详解 时间:2021-05-20 本文实例讲述了Android发送邮件的方法.分享给大家供大家参考,具体如下: 在android手机中实现发送邮件的功能也是不可缺少的. ...
- [转]JS调用Android里面的方法,Android调用JS里面的方法
FROM : http://blog.csdn.net/hj563308597/article/details/45197709 Android WebView 在公司Android的开发过程中遇到一 ...
- Android之Inflate()方法用途+setContentView和inflate区别
引用:http://blog.chinaunix.net/uid-27024249-id-3304935.html Android之Inflate()方法用途 Inflate()作用就是将xml定义的 ...
- android 解决getColor()方法过时
今天,简单讲讲android里如何解决getColor()方法过时的问题. 之前,我写博客讲了程序员需要解决过时的方法的问题,Google会提供过时函数的替代函数,程序员有责任找到替代函数,并且解决过 ...
最新文章
- 阻止应用继承的NTFS权限
- mac svn 返回svn upgrade等出错
- “Python来玩微信跳一跳”教程(问题总结)
- Windows API之WriteFile函数详细解答
- Vue 脚手架||Vue 脚手架的基本用法
- Python中list复制引发的问题
- 华为鸿蒙测试结果,华为鸿蒙OS系统测试结果相继出炉!果然没让花粉们久等:最好的体验...
- Code On Earth
- 另一种无法enable ABAP source code tool的原因
- DevOps之发布系统
- [渝粤教育] 中国地质大学 运筹学 复习题
- #loj 3058 [HNOI2019] 白兔之舞
- php url传递参数_互联网系统(APP、网站等)通信基石——会话(PHP版)
- oracle客户端 centos,Centos7-安装oracle客户端11.2.0.4
- LeetCode题解:猜数字大小
- Docker配置镜像加速器
- 不同电脑进入bios按键汇总
- 批量webp格式转换成jpg操作方法
- 用python画卡通人物的画法_教你绘制扁平化风格的卡通人物肖像
- 字符移位(将大写字母移到字符串尾部并不改变相对顺序)
热门文章
- 有效逻辑地址所对应的物理地址
- Linux 命令xxd输出十六进制
- linux下的通配符与特殊符号
- What is outlier?
- 关于thymeleaf的报错:Caused by: org.attoparser.ParseException: Could not parse as expression: ......
- LDAP未授权漏洞验证
- [渝粤教育] 中国地质大学 大学物理(上) 复习题
- 09_20_第七阶段:微服务开发||01-SpringBoot||19分布式Dubbo和Zookeeper【观看狂神随笔】
- Linux内核编译依赖
- Java基础-OOP 面向对象编程