- 博客(8)
- 收藏
- 关注
原创 静态内部类的生命周期
最近在研究内存泄漏的过程中偶然发现一个问题:我们通过Builder这种构建者的方式(这个Builder是个静态内部类)去构建一个参数对象是否会引发内存泄漏的风险(即静态内部类的生命周期是怎样的)?核心代码如下:public class ImageLoader { private Context context; public ImageLoader(Builder builder) {
2017-07-21 17:13:38
6716
1
原创 我的android异常系列——Fragment XXX not attached to Activity
我的异常系列目录为:http://www.jianshu.com/p/cb10697226ef直接切入主题。出现这个问题后,我们定位到代码中的位置一般是getString或者getResources导致的!既然是Fragment出现的问题。我们直接定位到Fragment的源代码,检索错误的字符串,马上我们可以看到Fragment的getResources()方法(getString最终也会调用这
2017-07-21 17:12:28
459
原创 我的android异常系列目录
我的android异常系列会持续更新下去,其中都是工作学习过程中遇到的异常问题,列表如下:我的android异常系列——java.lang.IllegalStateException: commit already called: http://www.jianshu.com/p/d7e2fd5aa7e3我的android异常系列——Fragment XXX not attached to A
2017-07-21 17:10:52
358
原创 我的android异常系列——java.lang.IllegalStateException: commit already called
我的异常系列目录为:http://www.jianshu.com/p/cb10697226ef出现commit already called这个异常的原因是:同一个FragmentTransaction只能commit一次(调用commit方法),可在它的实现类 BackStackRecord中找到以下代码,每一个BackStackRecord对象都会维护一个布尔变量(mCommitted),当co
2017-07-21 17:09:53
1167
原创 PagerAdapter,FragmentPagerAdapter,FragmentPagerStateAdapter的区别系列——缓存策略
为了测试三者缓存策略(创建与销毁子view)的区别,在ViewPager三种Adapter的子view创建和销毁的方法添加相关的日志代码,如下: @Override public void destroyItem(ViewGroup container, int position, Object object) { Log.d("ccc", "de
2017-01-20 16:18:13
4270
原创 android相机权限适配遇到的坑(包含6.0和6.0以下)
我们都知道,google在6.0以后加强了应用权限的管理,我们也能通过标准的方法去申请权限,但是由于一些厂商的修改,在适配过程中我们会遇到各种各样的问题。在6.0之前,也可能会因为用户的一些设置导致我们无法获取权限。6.0以下系统* 打开系统相机常规来说不需要相机权限。但是如果手机root了,并且使用获得root权限(未获取root权限设置不起作用)的安全管理(如LBE,开启主动防御后)软件管理权限
2016-11-23 17:43:14
6246
原创 重写Activity等Android组件构造函数的那些坑
最近看了一篇文章#Effective Android# 不要重载组件的构造函数(No.1)(应该叫重写),引发思考,一直没发现这个问题,在此记下,希望和各位共同学习。废话不多说,上代码:在继承于Activity的类MyActivity中给出带参数的构造方法public MyActivity(Context context){...}实例化:MyActivity acti
2016-04-28 17:04:03
2908
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人