Android学习之Handle

原创 2015年07月13日 10:25:13

      handle:只要是接收子线程发送的数据,并根据此数据配合主线程更新UI。

      可能遇到的问题之一:为什么会出现强制关闭对话框现象?其原因在于:在开启应用程序时,Android会开启一个主线程,主线程是管理界面的UI工具,会进行事件的分发。当进行一个耗时的操作比如连网读取数据或读取本地一个大文件时,界面会出现假死现象,如果在5s内没有反应,就会弹出系统的“强制关闭”错误提示。

     问题之二:怎么解决此现象?其办法就是将耗时的操作放在一个子线程中处理,而子线程中涉及UI更新时主线程将不安全即UI的更新只能在主线程中进行。此时就要用到Handle来解决这个问题,将Handle放在主线程中运行,通过Message与子线程进行数据的传递;即将子线程中传递来的Message对象放到主线程中,配合UI界面的更新。

 

    特点:Handle可以分发Message对象或Runnable对象到对应的主线程中,每个Handler实例都是绑定到其创建的线程当中。

    其主要作用有:

       1.安排消息或Runnable在某个主线程中的其他地方执行;

       2.安排一个动作在不同的线程当中去执行。

 

     Handler中分发消息的方法:


        post(Runnable)
        postAtTime(Runnable,long)
        postDelayed(Runnable long)
        sendEmptyMessage(int)
        sendMessage(Message)
        sendMessageAtTime(Message,long)
        sendMessageDelayed(Message,long)


        post类方法允许你排列一个Runnable对象到主线程队列中;


        sendMessage类方法, 允许你安排一个带数据的Message对象到队列中,等待更新。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android中对Handle机制的理解

一、重要参考资料  【参考资料】     目前来看,下面的几个网址中的内容质量比较不错,基本不需要再读别的网址了。  1、android消息机制一     http://xtfncel.jav...
  • chaoyu168
  • chaoyu168
  • 2016年03月17日 15:20
  • 3749

windbg学习21(!handle和!cs)

1.查看句柄信息!handle !handle 扩展显示目标系统中一个或所有进程拥有的句柄的信息 [cpp] view plaincopy 0:001> !handle  Handle 4 ...
  • rongwenbin
  • rongwenbin
  • 2014年02月26日 12:48
  • 1091

Android-Handle详解

(学习Mooc的笔记) 转载请标明出处:1.handle是什么?handle是android提供用来更新UI的一套机制,也是一套信息处理机制,可以发送消息,也可以通过它处理消息。 2.handle...
  • yuqing_1102
  • yuqing_1102
  • 2017年02月10日 17:01
  • 627

Android中关于Handle的用法和分析

Handler 1.作用: (1). 结合Thread实现连网读取数据,读取数据后更新页面,即从子线程给主线程提供一个消息报告的作用 因此主线程中一旦接收到此消息报告,即可更新页面。 (2)....
  • u013010578
  • u013010578
  • 2016年02月28日 15:40
  • 963

android之handle使用在消息机制使用

概述:Android使用消息机制实现线程间的通信,线程通过Looper建立自己的消息循环,MessageQueue是FIFO的消息队列,Looper负责从MessageQueue中取出消息,并且分发到...
  • bestone0213
  • bestone0213
  • 2015年01月07日 20:29
  • 1033

Android handle 弱引用防止内存泄露

private Handler handler; @Override     protected void onCreate(Bundle savedInstanceState) {  ...
  • jiangbing0125
  • jiangbing0125
  • 2014年11月20日 19:31
  • 749

android handle 用法

方法一:(java习惯,在android平台开发时这样是不行的,因为它违背了单线程模型) 刚刚开始接触android线程编程的时候,习惯好像java一样,试图用下面的代码解决问题    new...
  • bruce_wang_janet
  • bruce_wang_janet
  • 2014年12月06日 21:15
  • 4121

Activity中使用handle存在内存泄漏的隐患

在Android开发中,经常会在Activity中使用handler来进行线程间通信,使主线程能够实时更新UI。       但是在Android Studio中,发现使用handler时会有黄色的...
  • u012551993
  • u012551993
  • 2016年07月22日 23:47
  • 1990

android中handle的用法

Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。Android利用Handler来实现UI线程的更新的。 Handler是Android中的消息发送器,其在哪个Activi...
  • sinat_22949049
  • sinat_22949049
  • 2015年11月07日 20:48
  • 780

Android-Handle类总结

转自:http://www.pin5i.com/showtopic-android-handler.html 一、Handler的定义:           主要接受子线程发送的数据, 并用此...
  • u013995958
  • u013995958
  • 2017年02月13日 11:38
  • 189
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android学习之Handle
举报原因:
原因补充:

(最多只允许输入30个字)