在学习android时会碰到多线程的情况,不知道应用场景,所以自己总结一下

1)新建一个类继承自Threadh(或者实现Runnable接口),创建线程。然后重写父类的run()方法,并在里面编写耗时逻辑。

    private class Mythread extends Thread {public void run() {// 编写具体的逻辑 }}

在主线程中启动此线程时输入

 new Mythread().start();

应用场景:是java创建线程的方法,在android不常用,android有自己的方法,只用在不涉及更新ui时,才会使用。

2)android采用异步消息处理机制。在主进程中只发送消息,并不执行操作也不关心操作结果。

  1. 使用Handler的post(mRunnable)方法。post(mRunnable)的会调用Runnable对象,执行Runnable对象里的run()方法。
  2. 使用Handler的handler.sendMessage(message)方法,将Message对象发送出去。在Handler中handleMessage()方法中接收Message对象,再根据message.what的值(int)执行相应操作。
  3. 新建一个类继承自AsyncTask,会创建子线程,可以通过重写onPreExecute( ),doInBackground( ), onProgressUpdate( ),onPostExecute( )进行界面初始化,处理耗时任务,更新界面元素,返回的数据等复杂操作。

新建一个类在主线程中启动时输入:

new MyAsyncTask().execute();

注意:Handler方法只是发送消息,在接收消息的地方执行命令,不会新建子线程。在主进程中发送消息并不执行操作,所以不堵塞主进程,但是如果操作太耗时,仍会在接收处堵塞主进程。

应用场景:在进行需要根据message.what的值进行判断的任务使用handleMessage()。需要自我调用的,不断更新的使用post(mRunnable)方法。会堵塞主进程的功能使用AsyncTask。

android多线程处理的方法以及应用场景相关推荐

  1. android的四大组件及使用场景,Android/四大组件/Activity.md · BoraxZYF/AndroidInterview - Gitee.com...

    ## 四大组件 ## Activity ### Activity 的四种启动模式及使用场景 - standard 标准模式,Activity 的默认启动模式.每次启动一个 Activity 时都会创建 ...

  2. 探索 Android 多线程优化方法

    前言 1. 基本介绍 在我学习 Android 多线程优化方法的过程中,发现我对多线程优化的了解太片面. 写这篇文章的目的是完善我对 Android 多线程优化方法的认识,分享这篇文章的目的是希望大家 ...

  3. 三代测序的基本原理、组装方法和应用场景

    三代测序的基本原理.组装方法和应用场景 PB/Nanopore测序原理及优缺点介绍 PB:光信号,荧光基团结合碱基测序 Nanopore:电信号 优点 无GC偏好性 缺点 错误率较高 有效孔只有三分之 ...

  4. android phonegap插件开发方法 plugin

    2019独角兽企业重金招聘Python工程师标准>>> android phonegap插件开发方法 plugin 分类: phonegap 2014-03-03 22:41  59 ...

  5. Android getWindow().setFlags方法

    Android getWindow().setFlags方法 //设置窗体全屏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCR ...

  6. android+发邮件,Android发送邮件的方法实例详解

    Android发送邮件的方法实例详解 时间:2021-05-20 本文实例讲述了Android发送邮件的方法.分享给大家供大家参考,具体如下: 在android手机中实现发送邮件的功能也是不可缺少的. ...

  7. [转]JS调用Android里面的方法,Android调用JS里面的方法

    FROM : http://blog.csdn.net/hj563308597/article/details/45197709 Android WebView 在公司Android的开发过程中遇到一 ...

  8. Android之Inflate()方法用途+setContentView和inflate区别

    引用:http://blog.chinaunix.net/uid-27024249-id-3304935.html Android之Inflate()方法用途 Inflate()作用就是将xml定义的 ...

  9. android 解决getColor()方法过时

    今天,简单讲讲android里如何解决getColor()方法过时的问题. 之前,我写博客讲了程序员需要解决过时的方法的问题,Google会提供过时函数的替代函数,程序员有责任找到替代函数,并且解决过 ...

最新文章

  1. 阻止应用继承的NTFS权限
  2. mac svn 返回svn upgrade等出错
  3. “Python来玩微信跳一跳”教程(问题总结)
  4. Windows API之WriteFile函数详细解答
  5. Vue 脚手架||Vue 脚手架的基本用法
  6. Python中list复制引发的问题
  7. 华为鸿蒙测试结果,华为鸿蒙OS系统测试结果相继出炉!果然没让花粉们久等:最好的体验...
  8. Code On Earth
  9. 另一种无法enable ABAP source code tool的原因
  10. DevOps之发布系统
  11. [渝粤教育] 中国地质大学 运筹学 复习题
  12. #loj 3058 [HNOI2019] 白兔之舞
  13. php url传递参数_互联网系统(APP、网站等)通信基石——会话(PHP版)
  14. oracle客户端 centos,Centos7-安装oracle客户端11.2.0.4
  15. LeetCode题解:猜数字大小
  16. Docker配置镜像加速器
  17. 不同电脑进入bios按键汇总
  18. 批量webp格式转换成jpg操作方法
  19. 用python画卡通人物的画法_教你绘制扁平化风格的卡通人物肖像
  20. 字符移位(将大写字母移到字符串尾部并不改变相对顺序)

热门文章

  1. 有效逻辑地址所对应的物理地址
  2. Linux 命令xxd输出十六进制
  3. linux下的通配符与特殊符号
  4. What is outlier?
  5. 关于thymeleaf的报错:Caused by: org.attoparser.ParseException: Could not parse as expression: ......
  6. LDAP未授权漏洞验证
  7. [渝粤教育] 中国地质大学 大学物理(上) 复习题
  8. 09_20_第七阶段:微服务开发||01-SpringBoot||19分布式Dubbo和Zookeeper【观看狂神随笔】
  9. Linux内核编译依赖
  10. Java基础-OOP 面向对象编程