Handler.postDelayed(new Runnable)是否运行在主线程
转载地址: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)是否运行在主线程相关推荐
- handler.handleMessage(msg) 和 handler.sendEmptyMessage()运行在主线程吗?
遇到问题: 1. 平时 Handler 使用方式, 1. 定义 private Handler handler = new Handler() {@Override public void hand ...
- iOS 通知观察者的被调函数不一定运行在主线程
Tony in iOS | 08/08/2013 iOS 通知观察者的被调函数不一定运行在主线程 今天修复Bug时候发现的一个小细节,记录下. 问题描述 事情是这样的:我在A视图(UITableVie ...
- Android 实现一个验证码倒计时(Handler postDelayed 实现验证码倒计时)
直接看代码吧,很简单 public class MainActivity extends AppCompatActivity {private TextView code;private Handle ...
- 通过源码简要分析之Android消息机制Handler、Looper、MessageQueue运行机制
用了许久的Handler,对于Handler的使用确实是比较熟悉,但是具体内部是如何运作的,却只是模糊的.Handler发出的消息怎么到达MessageQueue?MessageQueue的数据怎么被 ...
- 【Android】Service几个重要的方法运行在哪个线程
一.前言 Service是Android中的四大组件之一,在开发中也是经常使用的. Service的用法比较简单,这里不过多进行讨论.但是,我们用了这么久的Service,是否有想过以下问题: Ser ...
- android如何阻塞主线程,Android-Android如何避免阻塞主线程
Android的Handler和AsyncTask,可以避免阻塞主线程(UI线程),且UI的更新只能在主线程中完成,因此异步处理是不可避免的. AsyncTask,它使创建需要与用户界面交互的长时间运 ...
- androidrunnable使用_Android Runnable 运行在那个线程
Runnable 并不一定是新开一个线程,比如下面的调用方法就是运行在UI主线程中的: Handler mHandler=new Handler(); mHandler.post(new Runnab ...
- “Handler中有Loop死循环,为什么没有阻塞主线程,原理是什么?”
前言 Android的消息机制主要是指Handler的运行机制,对于大家来说Handler已经是轻车熟路了,可是真的掌握了Handler?本文主要通过几个问题围绕着Handler展开深入并拓展的了解. ...
- Handler中有Loop死循环,为什么没有阻塞主线程,原理是什么
面试官: Handler中有Loop死循环,为什么没有阻塞主线程,原理是什么 心理分析:该问题很难被考到,但是如果一旦问到,100%会回答不上来.开发者很难注意到一个主线程的四循环居然没有阻塞住主线程 ...
最新文章
- 既然安卓是开源的 为何华为要 鸿蒙,安卓靠开源、免费赢得了天下,现在华为鸿蒙也是开源免费的! - 区块网...
- Python取出两个文件中相同的电话号码及地址(文件类型为:txt文本)
- data的值 如何初始化vue_vue 创建一个基础实例【02】
- SAP UI5 的 TypeScript 实践
- 热敏电阻温度特性曲线_热敏电阻与体温计的应用关系
- 修改db2管理服务器,创建DB2管理服务器的两种情况
- php pdo操作mysql_PHP操作数据库详细(PDO)
- 在ARM Cortex-M上实现FreeRTOS性能计数器
- plsql 快捷键设置
- 24V转5V的常规操作7812,7805,重要的是器件选型
- selenium课程笔记1---安装与环境配置(selenium,python,pycharm)
- 超混沌Lorenz系统图像加密(MATLAB)
- 兔子是这样吃掉狼和野猪的
- 专访商汤科技联合创始人林达华丨一名AI人才,需要多少栽培?
- 文华学院计算机专业师资,华中科技大学文华学院“最受欢迎教师”名单
- java 定义泛型变量_Java不应该允许变量声明的泛型类型声明的任何原因?
- 场效应管调光电路图_一种LED驱动场效应管调光控制电路的制作方法
- Cesium开发基础篇 | 02加载地形数据
- Th4.6:模板全特化、偏特化(局部特化)详述
- 牛客网Java后端开发面经汇总
热门文章
- php parse url 反向,实现PHP中parse_url的逆运算http_build_url
- C# DataGridView属性设置
- LabVIEW I/O服务器创建时的相关问题汇总
- Java中 == 和 equals 的区别是什么?
- Linux Shell文本处理工具集锦
- TIOBE开发语言排行榜
- mariadb数据库服务
- Hibernate关联关系映射-----单向一对一映射配置
- Host 'localhost' is not allowed to connect to this MySQL server
- configure: error: ZLib not installed