转载地址:http://blog.csdn.net/zhencheng20082009/article/details/66474641

知识点
postDelayed(new Runnable())是否运行在主线程中?
答案 是的。
这个 new Runnable() 依附于创建Handler的线程,
代码如下
在绝对的UI线程中打印线程ID:

System.out.println("UI Thread = " + Thread.currentThread().getId());  

下面在posdelayed中打印运行线程的ID:

new Handler().postDelayed(new Runnable() {  @Override  public void run() {  System.out.println("Handler Thread = " + Thread.currentThread().getId());  ImageUtil.deleteImageFromSDCard(imgPath);  }
}, 3000);  

最后打印如下:

07-09 10:47:24.110 17026-17026/com.spd.sinoss I/System.out: UI Thread = 1
07-09 10:47:27.111 17026-17026/com.spd.sinoss I/System.out: Handler Thread = 1  

可以看出来,它们两个程序都是运行在主线程中的。
方法的官方解释是:

The runnable will be run on the thread to which this handler is attached.

既是说,这个开启的runnable会在这个handler所依附线程中运行,而这个handler是在UI线程中创建的,所以
自然地依附在主线程中了。

postDelayed(new Runnable()) 而没有重新生成新的 New Thread()

Handler.postDelayed(new Runnable)是否运行在主线程相关推荐

  1. handler.handleMessage(msg) 和 handler.sendEmptyMessage()运行在主线程吗?

    遇到问题: 1.  平时 Handler 使用方式, 1. 定义 private Handler handler = new Handler() {@Override public void hand ...

  2. iOS 通知观察者的被调函数不一定运行在主线程

    Tony in iOS | 08/08/2013 iOS 通知观察者的被调函数不一定运行在主线程 今天修复Bug时候发现的一个小细节,记录下. 问题描述 事情是这样的:我在A视图(UITableVie ...

  3. Android 实现一个验证码倒计时(Handler postDelayed 实现验证码倒计时)

    直接看代码吧,很简单 public class MainActivity extends AppCompatActivity {private TextView code;private Handle ...

  4. 通过源码简要分析之Android消息机制Handler、Looper、MessageQueue运行机制

    用了许久的Handler,对于Handler的使用确实是比较熟悉,但是具体内部是如何运作的,却只是模糊的.Handler发出的消息怎么到达MessageQueue?MessageQueue的数据怎么被 ...

  5. 【Android】Service几个重要的方法运行在哪个线程

    一.前言 Service是Android中的四大组件之一,在开发中也是经常使用的. Service的用法比较简单,这里不过多进行讨论.但是,我们用了这么久的Service,是否有想过以下问题: Ser ...

  6. android如何阻塞主线程,Android-Android如何避免阻塞主线程

    Android的Handler和AsyncTask,可以避免阻塞主线程(UI线程),且UI的更新只能在主线程中完成,因此异步处理是不可避免的. AsyncTask,它使创建需要与用户界面交互的长时间运 ...

  7. androidrunnable使用_Android Runnable 运行在那个线程

    Runnable 并不一定是新开一个线程,比如下面的调用方法就是运行在UI主线程中的: Handler mHandler=new Handler(); mHandler.post(new Runnab ...

  8. “Handler中有Loop死循环,为什么没有阻塞主线程,原理是什么?”

    前言 Android的消息机制主要是指Handler的运行机制,对于大家来说Handler已经是轻车熟路了,可是真的掌握了Handler?本文主要通过几个问题围绕着Handler展开深入并拓展的了解. ...

  9. Handler中有Loop死循环,为什么没有阻塞主线程,原理是什么

    面试官: Handler中有Loop死循环,为什么没有阻塞主线程,原理是什么 心理分析:该问题很难被考到,但是如果一旦问到,100%会回答不上来.开发者很难注意到一个主线程的四循环居然没有阻塞住主线程 ...

最新文章

  1. 既然安卓是开源的 为何华为要 鸿蒙,安卓靠开源、免费赢得了天下,现在华为鸿蒙也是开源免费的! - 区块网...
  2. Python取出两个文件中相同的电话号码及地址(文件类型为:txt文本)
  3. data的值 如何初始化vue_vue 创建一个基础实例【02】
  4. SAP UI5 的 TypeScript 实践
  5. 热敏电阻温度特性曲线_热敏电阻与体温计的应用关系
  6. 修改db2管理服务器,创建DB2管理服务器的两种情况
  7. php pdo操作mysql_PHP操作数据库详细(PDO)
  8. 在ARM Cortex-M上实现FreeRTOS性能计数器
  9. plsql 快捷键设置
  10. 24V转5V的常规操作7812,7805,重要的是器件选型
  11. selenium课程笔记1---安装与环境配置(selenium,python,pycharm)
  12. 超混沌Lorenz系统图像加密(MATLAB)
  13. 兔子是这样吃掉狼和野猪的
  14. 专访商汤科技联合创始人林达华丨一名AI人才,需要多少栽培?
  15. 文华学院计算机专业师资,华中科技大学文华学院“最受欢迎教师”名单
  16. java 定义泛型变量_Java不应该允许变量声明的泛型类型声明的任何原因?
  17. 场效应管调光电路图_一种LED驱动场效应管调光控制电路的制作方法
  18. Cesium开发基础篇 | 02加载地形数据
  19. Th4.6:模板全特化、偏特化(局部特化)详述
  20. 牛客网Java后端开发面经汇总

热门文章

  1. php parse url 反向,实现PHP中parse_url的逆运算http_build_url
  2. C# DataGridView属性设置
  3. LabVIEW I/O服务器创建时的相关问题汇总
  4. Java中 == 和 equals 的区别是什么?
  5. Linux Shell文本处理工具集锦
  6. TIOBE开发语言排行榜
  7. mariadb数据库服务
  8. Hibernate关联关系映射-----单向一对一映射配置
  9. Host 'localhost' is not allowed to connect to this MySQL server
  10. configure: error: ZLib not installed