- 浏览: 156514 次
- 性别:
- 来自: 北京
最新评论
-
ysc123shift:
感谢博主,提供灵感并行到了我遇到问题的解决方法:注释onSto ...
Activity中onStop和onDestroy方法延迟调用BUG解决 -
砺雪凝霜:
可以加我QQ:1029457926 一起交流,一起进步,一起 ...
Android内存优化实践 -
zhu_jinlong:
非常好的文章,做到这些并牢记处理原则,可以远离memory l ...
Android内存优化实践 -
zhu_jinlong:
Volley持有context引用导致的memory leak ...
那些年我使用Volley遇到的坑 -
zhu_jinlong:
特地登录点赞!
如何做好程序员的自己
文章列表
Activity生命周期异常分析
我们知道正常情况下Activity创建的时候会执行 onCreate onStart onResume 方法;当锁屏情况下Activity会执行 onPause onStop方法;当屏幕再次显示的时候会执行onReStart onStart onResume方法。但是在一些特殊情况下,如语言切换,横竖屏切换等配置改变以及内存吃紧的情况下,activity就有可能被杀死,从而导致生命周期异常。这对于开发人员来说,了解这些是很有必要的。下面我们来具体分析这两种情况吧
(一)情况1:资源相关的配置信息发生改变导致Activity生命周期异常
理 ...
如何实现让RecyclerView有不同尺寸的item
我们的项目开发中有一个需求是这样的:我们左边有一排关键字,用户用遥控器滑动到某个关键字后,后边就要求出相应的搜索结果,搜索结果是一个gridView,一般情况下,gridView每行排列着是4个相同尺寸的item,但是针对特殊的搜索结果的item要求,每行排列2个。
分析:
(1) 可不可以用GridView实现呢?
我们都知道GridView的每个布局的宽和高必须是一样的,(HeadView咱们就不考虑了)。用gridView的方式基本可以放弃了。
(2) 用gridLayout实现呢?
gri ...
探究如何以jar包导入的形式使用RecyclerView
由于项目中要求使用RecyclerView,但是使用的Android系统是经过公司阉割过的,导致我们只能基于API15来build我们的项目,经过多次的调研发现,目前使用RecyclerView都是直接在build.gradle文件中配置好的jar信息,然后AS会自动下载好相应的jar包。
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:recyc ...
Activity中onStop和onDestroy方法延迟调用BUG解决
这个礼拜一功能开发完后,发现一个很奇葩的问题,我写了一个Activity,反复进去和退出,这样重复20次,TV的内存居然从53M升到了惊人的 170M,尝试了解决内存泄露的常规方法 ...
[置顶] 如何做好程序员的自己
- 博客分类:
- 日常笔记
做开发的工作已经快2年了,渐渐才发现自己在工作上花的心似乎太多了,没错技术进步是好事,但是在与人沟通方面似乎自己压根就没注意。最近和朋友聊天,才发现自己有很多方面做的确实不足。总结下有几点:
(一) 与同事打好关系
(1)别仗着自己技术好,在同事面前表现自己,留下爱装逼的印象
好多技术好的哥们喜欢对别人说,这个该怎么样,那个该怎么样。别人向你请教,你应该耐心点告诉别人,别人觉得你很优秀,才会来找你啊。但是如果别人没向你请教的话,那我们最好安静点,如果你是领导的话,大家接受还可以,但如果大家都是组员的话,特别他在公司比你呆的久的话,那最好低调点,不然的话会 ...
《把时间当作朋友》读后感
如何让自己心智力量变得强大?
好书难找,一本适合自己的好书更难找。《把时间 当作朋友》是一本难得的好书,从这本书中我才意识到心智力量对人影响的 ...
那些年我使用Volley遇到的坑
使用Volery已经快整整一年了,下面我来总结一下,我使用Volley时踩到的坑
(一) Volley的二次封装
下面看看我是怎么对Volley的二次封装的:
protecte ...
谈谈Android内存优化
引起Android内存泄露的情况有很多,但是很多都是我们代码不规范引起的。只要我们平时代码规范点我们都能开发出性能比较高的APP应用。
引起泄露的原因大都是,由于不适当的引用,导致内存较大的对象没有及时释放,导致内存居高不下,严重的时候可能会引起OOM。在Android开发中泄露的原因,总结下来,大都是由于Activity Context和bitmap对象使用不当引起的。下面就来与大家分享下我在开发一个TV项目中遇到的内存泄露的情况。
(一) ...
1 概念
ListViewAnimations是一个带Item显示动画的ListView,动画包括底部飞入、其他方向斜飞入、下层飞入、渐变消失、滑动删除等
项目地址:https://github.com/nhaarman/ListViewAnimationsDemo地址:https://play.google.com/store/apps/details?id=com.haarman.listviewanimations
2 使用
(1) 添加一下库文件
lib-core:这是ListViewAnimations的核心库,它包含各种各样的动画效果
lib ...
EventBus进阶(二)
上一篇简单介绍了EventBus的简单用法,下面来介绍下EventBus的其它的一些用法
1 事件订阅的优先级的使用
EventBus.getDefault().register(this, priority);
在同一个线程级别中,订阅者的优先级越高,就越先收到消息 ...
开源框架EventBus(一)
1 什么事EventBus
EventBus是一个android事件发布/订阅的高性能框架,主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息。优点是开销小,代码更简洁优雅,事件发布者和事件接收者之间的耦合度更小。如果您目前的项目的逻辑非常复杂,例如组件、线程之间大量传参,频繁使用广播的话维护起来比较吃力的话,或许EventBus是一个非常好的选择。
gitHub地址:https ...
1 概念
状态模式又称为状态对象模式,状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类
一样。
2 状态模式的结构
状态模式把所有研究的对象的行为包装在不同的状态对象里,每一个状态对象都属于一个抽象状态类的一个子类。状态模式的意图是让一个对象在其内部状态改变的时候,其行为也随之改变。
模式所涉及的角色有:
抽象状态(State)角色:定义一个接口,用以封装环境(context)对象的一个特定转态所对应的行为。
具体状态(ConcreteState)角色:每一个具体状态类都实现了环境的一个状态 ...
1 什么是策略模式?
策略模式讲的是,如果有一组算法将来它们可能因为需求的原因而发生变更,那么可以将每一个算法都封装起来,使得他们可以互相互换。这样可以在保证系统中原有代码几乎不变更的情况下,只需增加算法的一种实现,即可实现功能的变更。
2 策略模式有什么好处?
策略模式的好处在于可以保证原有代码几乎不变的情况下,实现功能上的扩展,具体体现在可以动态的改变对象的行为. 策略模式遵循了ocp(“开-闭”)的设计原则,一个良好的软件对内是封闭的,对外是易于开放的。
3 设计原则
1 概念
适配器模式把一个类的接口变换成客户端期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的俩个类能够在一起
工作。
这很像变压器(adapter),变压器把一种电压变换成另一种电压,把美国的电 ...
[置顶] 软件设计原则
- 博客分类:
- 设计模式
1 OCP(open - close Principle)
又叫"开-闭"原则,指的是在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。换而言之,应当可以在不被修改的情况下改变模块的行为。
所有的软件系统都有一个共同的性质,即对他们的需求都是会随着时间的推移而发生变化,在软件系统面临新的需求时,系统的设计必须是稳定的,满足“开-闭”原则的设计可以给软件系统2个无可比拟的优越性:
通过扩展已有软件系统,可以提供新的行为,以满足对软件的新需求,使变化中的软件系统有一定的适应性 和灵活性。
已有的软件模 ...