自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

转载 ThreadLocal

相关链接:  http://www.jianshu.com/p/a8fa72e708d3  创建Handler的时候,需要先创建当前线程的Looper,Android默认在启动的时候为我们创建的 主线程的Looper,所以我们可以在主线程直接创建Handler。  但是在子线程创建Handler的时候,我们必须先手动创建Looper,才能创建Handler,否则会抛出...

2018-05-17 16:31:00 214

转载 集合总结

数组:数据在内存是连续存放的,随机访问效率很高(根据索引值就可以直接定位到具体的元素)。插入和删除效率低(重新分配、移动元素)链表:数据在内存按需分配,随机访问效率低(必须从头或尾,顺着链接查找),插入和删除效率高。ArrayLis,底层是动态数组(ArrayList随机访问效率很高,但插入和删除性能比较低) 添加元素的效率还可以,重新分配和拷贝数组的开销被平摊...

2017-06-16 18:13:00 332

转载 dagger2系列之Scope

  Dagger的Scope注解代表的是作用域,通过实现自定义@Scope注解,标记当前生成对象的使用范围,标识一个类型的注射器只实例化一次,在同一个作用域内,只会生成一个实例,然后在此作用域内共用一个实例。这样看起来很像单例模式,我们可以查看@Singleton其实就是@Scope的一个默认实现而已。当然,你得是同一个Component对象来生成Dagger为我们提供了Scop...

2017-01-02 16:55:00 233

转载 dagger2系列之依赖方式dependencies、包含方式(从属方式)SubComponent

  本篇是实战文章,从代码的角度分析这两种方式。本文参考自下列文章:      http://www.jianshu.com/p/1d42d2e6f4a5      http://www.jianshu.com/p/94d47da32656  一般在项目中我们需要全局使用app或者其他,这个时候就需要有一个全局的Component作为桥梁,提供给使用方使用。一个Comp...

2017-01-01 15:18:00 241

转载 dagger2系列之生成类实例

  上一节的最后,我讲到一次注入生成类实例的生成步骤。先来回顾一下:   1 Module中存在创建方法,则看此创建方法有没有参数      如果有参数,这些参数也是由Component提供的,返回步骤1逐一生成参数类实例,最后再生成最终类实例--ok      如果无参数,则直接由这个方法生成最终类实例   2 Module中没有创建方法,则从构造函数里面找那...

2017-01-01 10:31:00 189

转载 Dagger2系列之使用方法

  本系列只讲使用方法和使用中遇到的问题,如果还对dagger2还不了解的童鞋儿可以参考文章: http://www.jianshu.com/p/cd2c1c9f68d4 http://www.jianshu.com/p/94d47da32656  使用Dagger2的前提需要添加一些依赖:...

2016-12-30 19:24:00 267

转载 Handler系列之内存泄漏

  本篇简单的讲一下平常使用Handler时造成内存泄漏的问题。  什么是内存泄漏?大白话讲就是分配出去的内存,回收不回来。严重会导致内存不足OOM。下面来看一下造成内存泄漏的代码:public class MemoryLeakActivity extends Activity { private MyHandler mHandler; @...

2016-12-28 17:42:00 149

转载 Handler系列之创建子线程Handler

  上一篇我介绍了Handler机制的工作原理,默认情况下,ActivityThread类为我们创建的了主线程的Looper和消息队列,所以当你创建Handler之后发送消息的时候,消息的轮训和handle都是在ui线程进行的。这种情况属于子线程给主线程发消息,通知主线程更新ui...等,那么反过来,怎么才能让主线程给子线程发消息,通知子线程做一些耗时逻辑??  之前的学习我们知道,...

2016-12-28 16:25:00 182

转载 Handler系列之原理分析

  上一节我们讲解了Handler的基本使用方法,也是平时大家用到的最多的使用方式。那么本节让我们来学习一下Handler的工作原理吧!!!  我们知道Android中我们只能在ui线程(主线程)更新ui信息,那么你们知道为什么只能通过Handler机制更新ui吗?其实最根本的目的就是解决多线程并发的问题。  假设在一个Activity中有多个线程去更新ui,并且都没有加锁,那么...

2016-12-28 11:11:00 204

转载 Handler系列之使用

  作为一个Android开发者,我们肯定熟悉并使用过Handler机制。最常用的使用场景是“在子线程更新ui”,实际上我们知道上面的说话是错误的。因为Android中只有主线程才能更新ui,那么当我们在子线程得到更新ui通知的时候怎么办?此刻Handler存在的意义就体现出来了。我们在子线程用handler发送一个消息通知给主线程,然后让主线程更新ui,这样问题就解决了。下面让我们看看...

2016-12-27 21:41:00 201

转载 序列化的两种方式

<一>名词解释  什么是序列化?    将对象转化为字节流。  什么是反序列化?    将字节流转化为对象。<二>为什么序列化?  1)永久性保存对象,保存对象的字节序列到本地文件中;  2)通过序列化对象在网络中传递对象;  3)通过序列化在进程间传递对象。<三>怎么序列化?  Android开发中的序列...

2016-12-16 15:51:00 471

转载 注册广播的两种方式:动态广播和静态广播的区别和用法

  今天介绍一下Android的四大组件之一的BroadCastReceiver,即广播。广播类似于JAVA设计模式中的观察者模式,即当被观察者数据变化的时候,会去通知观察者做相应处理。这里也是一样,当发出广播的时候,那么注册过该广播的人,就能收到这个广播,进而做一些工作。  上面说的广播注册,在Android中有两种方式,即动态注册(代码注册)、静态注册(清单文件注册),下面我以A...

2016-12-15 17:09:00 467

转载 Android ViewPager切换之PageTransformer接口中transformPage方法解析

今天让我们了解一下,Android3.0之后ViewPager切换时候的一个动画。Google给我们展示了两个动画例子:DepthPageTransformer和ZoomOutPageTransformer,代码如下:public class DepthPageTransformer implements PageTransformer { private static fl...

2016-12-04 17:28:00 373

转载 ViewStub的使用

    ViewStub是一个不可见的、大小为0的控件,运行时ViewStub可以滞后加载。当ViewStub置为可见或者调用inflate()的时候,布局就会加载出来。用加载进来的布局取代ViewStub在父布局中的位置。因此,ViewStub只有在调用了setVisibility()或者inflate()之后,才会在层级中显示出来。将ViewStub布局参数设置给ViewStub指定...

2016-12-02 20:15:00 180

转载 Pair的使用

  今天学习一个细小的知识点,它就是Pair,首先让我们看一下它简短的源码:public class Pair<F, S> { public final F first; public final S second; /** * Constructor for a Pair. * * @param ...

2016-12-02 17:26:00 484

转载 Android开发之Shape详细解读

  日常开发中,我们会遇到一些Button、Textview...等控件的背景是圆角矩形、圆形...等,和android默认的控件背景矩形不一致,此时shape的作用就体现出来了,我们可以根据shape属性画出很多我们意想不到的背景图案,下面我会把所有shape的属性都介绍一下。本文参考子http://keeganlee.me/post/android/20150830。1  sh...

2016-11-29 23:38:00 535

转载 Android样式之selector

  日常开发当中,难免会出现这样一种情况,为一个按钮、TextView...设置一个点击状态的颜色改变,可能是background背景的改变,也可能是字体颜色的改变,简单点说:默认状态下,字体颜色或者背景是一种颜色,按下或者点击的时候,变成另一种颜色。  这里面有一些小坑,为了避免踩到,特此小结一下。本文参考了 http://keeganlee.me/post/android/201...

2016-11-27 16:08:00 323

转载 weight属性你用的真的6嘛?

  相信大家在日常开发中一定使用过weight这个属性,它的作用一个是权重,另一个就是渲染优先级,但是你真的能很6的使用它嘛?如果不是,那么请继续往下看!!!  我们知道,当weight起到不同作用的时候,weight属性的值可以影响控件的效果。但是具体的影响是怎么样的哪?  当起权重作用的时候,weight属性值越大,占据的空间越大。(要求weight属性必须和0dp一起使用)...

2016-11-12 15:26:00 748

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除