handler.postDelayed(new Runnable()){ }运行在主线程吗
答案:是的。
 handler.postDelayed(new Runnable() {
                    @Override
                    public void run() {
        tv_word.setVisibility(View.GONE);
                    }
                },3000);
官方说法:
开启的runnable会在这个handler所依附线程中运行,而这个handler是在UI线程中创建的,所以
自然地依附在主线程中了。
postDelayed(new Runnable()) 而没有重新生成新的 New Thread()
小结
通常来说handler.postDelayed(new Runnable()){ }是为了刷新UI用的,handler实例化在主线程,postDelayed(new Runnable()){ }方法又依附于handler所在线程,所以就运行于主线程。即使这样我还是不理解,new Runnable()不是新开了一个线程吗?
原来我弄错了,如果是implements Runnable,像extends Thread一样,是新开了线程,但是现在只是new Runnable(){},是把Runnable对象以Message形式post到UI线程里的Looper中执行,现在真相大白了,知识点太容易混淆了。
handler.postDelayed(new Runnable()){ }运行在主线程吗的更多相关文章
- iOS 通知观察者的被调函数不一定运行在主线程
		Tony in iOS | 08/08/2013 iOS 通知观察者的被调函数不一定运行在主线程 今天修复Bug时候发现的一个小细节,记录下. 问题描述 事情是这样的:我在A视图(UITableVie ... 
- Android Runnable 运行在那个线程
		Runnable 并不一定是新开一个线程,比如下面的调用方法就是运行在UI主线程中的: Handler mHandler=new Handler(); mHandler.post(new Runnab ... 
- Android Handler 异步调用修改界面与主线程
		在Android编程的过程中,如果在Activity中某个操作会运行比较长的时间,比如:下载文件.这个时候如果在主线程中直接下载文件,会造成Activity卡死的现象:而且如果时间超过5秒,会有ANR ... 
- 2017-11-29 由runnable说起Android中的子线程和主线程
		1.首先纠正一个观点,就是runnable运行在子线程中是错误的观念.runnable只是创建了一个执行任务的对象,但是它本身并不会创建一个新的子线程,Runable只是给你接口让你实现工作线程的工作 ... 
- Android中三种计时器Timer、CountDownTimer、handler.postDelayed的使用
		在android开发中,我们常常需要用到计时器,倒计时多少秒后再执行相应的功能,下面我就分别来讲讲这三种常用的计时的方法. 一.CountDownTimer 该类是个抽象类,如果要使用这个类中的方法, ... 
- handler.postDelayed()和timerTask
		public static void scrollToListviewTop(final XListView listView) { listView.smoothScrollToPosition(0 ... 
- new Handler().postDelayed() 延迟intent跳转
		原文地址http://blog.csdn.net/x605940745/article/details/19401549 new Handler().postDelayed(new Runnable( ... 
- Android更新主线程UI的两种方式handler与runOnUiThread()
		在android开发过程中,耗时操作我们会放在子线程中去执行,而更新UI是要主线程(也叫做:UI线程)来更新的,自然会遇到如何更新主线程UI的问题.如果在主线程之外的线程中直接更新页面显示常会报错.抛 ... 
- handler更新UI主线程
		示例:下面代码的功能是修改UI主线程TextView的内容 public class MainActivity extends Activity { private Button btn_start; ... 
随机推荐
- Install zabbix
			- name: Create dir to keep install file file: path=/opt/pacheage state=directory follow=yes force=ye ... 
- 读写分离很难吗?springboot结合aop简单就实现了
			目录 前言 环境部署 开始项目 注意 參考: 前言 入职新公司到现在也有一个月了,完成了手头的工作,前几天终于有时间研究下公司旧项目的代码.在研究代码的过程中,发现项目里用到了Spring Aop来实 ... 
- vue  原生添加滚动加载更多
			vue中添加滚动加载更多,因为是单页面所以需要在跳出页面时候销毁滚动,要不会出现错乱.我们在mounted建立滚动,destroyed销毁滚动. mounted () { window.addEven ... 
- Scala学习笔记三
			scala变量理解: package com.cxy.scala object Hello { def main(args: Array[String]): Unit = { println(&quo ... 
- Java面向基础概述和三大特性
			Java 是面向对象的高级编程语言,类和对象是 Java 程序的构成核心.围绕着 Java 类和 Java 对象,有三大基本特性:封装是 Java 类的编写规范.继承是类与类之间联系的一种形式.而多态 ... 
- 你真的了解Object源码吗
			欢迎点赞阅读,一同学习交流,有疑问请留言 . GitHub上也有开源 JavaHouse 欢迎star 引入 Object 应该是比较简单的源码了.现在我们来分析一下他.Object 是类层次结构的根 ... 
- 配置Tomcat监听80端口、配置Tomcat虚拟主机、Tomcat日志
			6月27日任务 16.4 配置Tomcat监听80端口16.5/16.6/16.7 配置Tomcat虚拟主机16.8 Tomcat日志扩展邱李的tomcat文档 https://www.linuser ... 
- mysql那些事(3)小数如何存储
			创建mysql数据表的时候,经常会遇到存储小数(浮点数)的情况,如:价格,重量,身高等. 目前大的公司流行三种存储方案: 1.将数据扩大10的倍数达到使用整数类型存储目的. 比如价格,我们经常以分为单 ... 
- List接口下的集合
			集合框架 List接口下的集合特点: Set接口下的集合特点: 1.都是有序的 1.都是无序的 2.都有下标 2.没有下标 3.都可以重复 3.不可重复(覆盖) List接口下的集合 1.ArrayL ... 
- DateTime格式转换部分介绍
			DateTime与字符串转换: DateTime()与转换为字符串主要依靠DateTime().ToString(string format) 函数,以我的理解,参数format大体分为单个字母和多个 ... 
