- 博客(6)
- 收藏
- 关注
原创 Handler、Looper、Message源码学习总结
一、Handler、Looper、Message三者作用和关系1、Message概念:线程中一个个需要处理的任务称为消息,存放任务的是一个队列,成为消息队列(MessageQueue),内部存储结构为单链表。消息是Message类的实例,他有很多个属性,其中有三个需要自己定义:what:用来标识一条消息obj:由用户指定,随消息发送的对象。target:一般指处理消息的Hand...
2018-10-06 19:43:17
203
原创 Java内存溢出场景及解决办法
Java内存溢出即程序在申请内存时,没有足够的空间供其使用,出现out of memory。常见于四种情况:栈溢出(StackOverflowError)、堆溢出(OutOfMemoryError:java heap space)、永久代溢出(OutOfMemoryError: PermGen space)、OutOfMemoryError:unable to create nati...
2018-10-04 21:11:23
15977
原创 Android事件分发机制
理解Android时间分发机制,首先要知道什么是Android事件,即分发对象;其次要明白事件都在哪些对象间进行传递(分发);最后才能理解整个分发过程。一、Android事件当用户点击屏幕时,会产生点击事件(Touch事件),Touch事件的具体细节被封装成MotionEvent对象。事件类型有如下4类:一般情况下,事件列由一个ACTION_DOWN事件、一个ACTION_UP事件...
2018-10-02 10:30:34
210
原创 AsyncTask相关问题梳理
最近写了个Flickr网站的手机端应用(PhotoGallery),该应用通过AsyncTask创建后台线程连接网络并获取图片的URL。下面从如何使用、源码理解、使用可能出现的问题三个方面来对AsyncTask总结如下。一、在本应用中的使用该类一共有三个参数可供调用,分别是 Params:指定将要传给execute()方法的参数,也是doInBackground()方...
2018-08-20 19:41:04
226
原创 设计模式之Builder模式
一、定义在设计模式中对Builder模式的定义是用于构建复杂对象的一种模式,所构建的对象往往需要多步初始化或赋值才能完成。使用Builder模式就是用来替代多参数构造函数。二、在Android中的应用1、AlertDialog.Builder通过查看源码发现,AlertDialog的构造方法都是protected修饰,即除了它的子类,其他类是无法访问这个方法的。因此在Fragm...
2018-08-06 23:30:44
3544
原创 Android设计模式——单例模式
一、单例模式1、定义确保某一个类只有一个实例,并且自行实例化并向整个系统提供这个唯一实例。2、在Android中的实现(以LayoutInflater为例)单例模式最简单的实现方法即将类对象的构造方法私有化,使外部类无法通过构造函数初始化该类的对象,再通过一个静态方法获取一个唯一的实例。Android中系统的核心服务如LayoutInflater都是以单例模式运行的。我们通常使用LayoutInf...
2018-06-29 14:07:42
255
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人