- 博客(21)
- 资源 (6)
- 收藏
- 关注

原创 Android Drawable的ConstantState共享问题解决,并从源码层分析其原因
在平时开发中,我们有时候会用到设置图片的透明的功能,不假思索的情况下,我们自然就会通过设置getBackground().setAlpha(XXX)来去达到我们的目的,但是我们后续会发现白色背景变成透明的状况,并且引发很多界面出现颜色错乱的问题,是不是很无奈呢?这个问题,我们网上一搜也都久知道怎么解决了?通用解决方式:getBackground().setAlpha(XXX)改成getBackground().mutate().setAlpha(XXX);这样就解决了。我们在往后面看其他的解释,也
2020-05-26 14:56:19
789
原创 java Atomic用法
value++ 因为被关键字 synchronized 修饰,所以会在各个线程间同步执行。但是 value++ 消耗的时间很有可能比线程状态转换消耗的时间还短,所以说 synchronized 是 Java 语言中一个重量级的操作。
2020-07-29 18:39:10
474
原创 retrofit+rxjava2使用中遇到的一些问题
retrofit+rxjava2使用中遇到的一些问题1、网络code为204或者205不回调问题原因:retrofit中OkHttpCall里此处拦截了导致,需要自己针对此种情况处理正在上传…重新上传取消解决:需要在自定义的公共常规拦截器的intercept处理:具体如下:如HttpBaseInterceptor 里intercept里正在上传…重新上传取消抛出异常可以参考RealInterceptorChain.java:147行的;抛出异常后rxjava2会捕获回调到
2020-07-03 10:03:04
756
原创 Java 中 ClassLoader
注意:“双亲委派”机制只是 Java 推荐的机制,并不是强制的机制。我们可以继承 java.lang.ClassLoader 类,实现自己的类加载器。如果想保持双亲委派模型,就应该重写 findClass(name) 方法;如果想破坏双亲委派模型,可以重写 loadClass(name) 方法。
2020-06-02 11:27:56
291
原创 JVM 中的内存划分、GC 回收机制与分代回收策略
Android 工程师进阶模块一:JVM 与 DVM 必知必会1、程序运行时,内存到底是如何进行分配的?(1)程序计数器(Program Counter Register)Java 程序是多线程的,CPU 可以在多个线程中分配执行时间片段。当某一个线程被 CPU 挂起时,需要记录代码已经执行到的位置,方便 CPU 重新执行此线程时,知道从哪行指令开始执行。这就是程序计数器的作用。(2)虚拟机栈的初衷是用来描述 Java 方法执行的内存模型,每个方法被执行的时候,JVM 都会在虚拟机栈中创建一个栈帧
2020-05-25 11:46:09
224
原创 LeakCanary的Activity的监听泄漏流程(代码层粗略梳理),并附加引用优化和引用队列的例子
LeakCanary的Activity的监听泄漏流程:LeakCanary.installl()—〉AndroidRefWatcherBuilder.buildAndInstall()—〉RefWatcher创建—〉ActivityRefWatcher.install(context, refWatcher)—〉ActivityRefWatcher.install#registerActivityLifecycleCallbacks—〉lifecycleCallbacks.onActivityDes
2020-05-22 15:56:03
313
原创 android UncaughtExceptionHandler的使用
在android开发中,经常会用到第三方统计崩溃sdk,好奇他们怎么实现的,于是看了一下相关资料;了解到主要用到 Thread.UncaughtExceptionHandler 来捕获出现的异常信息;知道此种捕获方式后,于是自己去写一下验证一下!在此mark一下!1.实现要去写一个工具类,实现此UncaughtExceptionHandler 接口,并写成单例; 如下:pu...
2018-02-28 20:36:15
477
原创 java何时使用equals和hashcode?
1. List使用List.removeall(),remove()去重时,直接remove是比较对象地址,如果想比较其内的值相等就相等的话则equals就返回true,只需要重写equals,无需重写hashcode,此时这两个对象的hashCode是不同的(理论上如此),经验之谈的话。两个都重写较好,根据实际情况; 2. Set和Hashmap的使用contain,需要重写 equals...
2018-02-28 20:36:06
948
转载 android listview侧滑相关文章
1.http://blog.youkuaiyun.com/lmj623565791/article/details/22961279 http://blog.youkuaiyun.com/sinat_27681957/article/details/51854525 重写listview实现2.http://www.jianshu.com/p/d738bfcac7c7 自定义item的layout与ViewD...
2018-02-28 20:35:44
195
转载 Android端实现单点登录的方法详解
原文链接:http://www.jianshu.com/p/3307b7956acf所谓单点登录就是指的同一个账户(id)不能在一个以上的设备上登录对应的用户系统(排除web端和移动端可以同时登录的情况),例如:用户m在A设备登录并保持登录状态,然后又在B设备登录,此时A应该要强制下线,m无法在A设备上继续执行用户相关的操作,下面来一起看看吧。前言单点登录SSO(Single Sign...
2018-02-28 20:35:36
2899
原创 android TextView 显示不全的问题解决,此问题是设置了maxLines和ellipsize=end情况下发生的!
今天写列表时,一行文本有时一行有时多于一行,于是本人设置了android:maxLines="2",android:ellipsize="end",结果列表的这一列就显示不全了,既然出问题了,就得解决呀,一顿找问题;本来想图方便网上找一下原因,结果发现没有此类问题或者 都没有给出解决方案;还是自己找原因吧; 后来发现 了问题,此控件 的父布局是LinearLayout,...
2018-02-28 20:35:24
7749
原创 android Relativelayout 某控件设置layout_alignParentRight=true,整行不显示问题
今天开发时,遇到android Relativelayout 某控件设置layout_alignParentRight=true,其他控件都是通过layout_toLeftOf 依附于它显示,整行则不显示;最开始一直找不到问题,问题来了,只能依次排查 控件 隐藏代码了;最终 发现,隐藏此控件时整行则不显示;因此要慎用此种情况的隐藏控件!即此种情况下,最右边的此控件不能setVisibility(...
2018-02-28 20:35:10
2586
转载 【解惑】领略Java内部类的“内部”
转载自:http://android.blog.51cto.com/268543/384809标签:Java 职场 休闲 内部类内部类有两种情况:(1) 在类中定义一个类(私有内部类,静态内部类)(2) 在方法中定义一个类(局部内部类,匿名内部类) 1、私有内部类 —— 在方法之间定义的内部类,非静态 我们首先看看类中内部类的两个特点: (1) 在外部类的作用范围内可以任意创建...
2018-02-28 20:34:59
276
转载 Java内部类的使用小结
Java内部类的使用小结引自:http://android.blog.51cto.com/268543/384844/内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。*内部类可以是静态static的,也可用public,default,protected和private修饰。(而外部顶级类即类名和文件名相同的只能使用public和default)。 注意:内部类是一个编译时的概念...
2018-02-28 20:34:49
202
转载 ScheduleExecutorService
ScheduleExecutorService1.按指定频率周期执行某个任务。初始化延迟0ms开始执行,每隔100ms重新执行一次任务。[java] view plain copy/** * 以固定周期频率执行任务 */ public static void executeFixedRate() { ScheduledExecutorService executor = Execu...
2018-02-28 20:34:40
545
转载 ScheduleExecutorService,周期性线程池
ScheduleExecutorService1.按指定频率周期执行某个任务。初始化延迟0ms开始执行,每隔100ms重新执行一次任务。[java] view plain copy/** * 以固定周期频率执行任务 */ public static void executeFixedRate() { ScheduledExecutorService executor = Execu...
2018-02-28 20:34:24
984
翻译 Intent过滤
如果我们的app的功能对别的app也有用,那么其应该做好响应的准备。例如,如果创建了一个social app,它可以分享messages 或者 photos 给好友,那么最好我们的app能够接收ACTION_SEND 的intent,这样当用户在其他app触发分享功能的时候,我们的app能够出现在待选对话框。通过在manifest文件中的<activity>标签下添加<inten...
2018-02-28 20:34:13
258
转载 android setContentView分析
1.http://www.jianshu.com/p/3b4dc52fbae4 2.http://www.jianshu.com/p/16d156bdfd04
2018-02-28 20:33:17
205
原创 android oncreate里可以执行子线程操作UI的原因
因为你是在onCreate方法里面立马更新UI的,这个阶段ViewRootImpl还没生成,此时更新UI是不会检查是否在主线程,此时相当于对UI的一种属性配置罢了,所以会正常。当执行onResume时,就要调用chectThread检查是否在主线程了,此时你放在onResume里面执行子线程更新UI就会出问题了。...
2018-02-28 20:27:54
853
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人