android
newmandirl
这个作者很懒,什么都没留下…
展开
-
Collections的sort方法加上Comparator后,是如何排序的
Collections的sort方法加上Comparator后,是如何排序的我们来看看Comparator的compare方法的注释 我们看到returns下方的信息,看完大家都知道怎么回事,但是这时即使按照上面的信息写完了,要知道序列结果是升序还是降序,还是需要了解一下Collections内部 TimSort。直接看看例子吧 [5, 1, 4, 3, 2]这个序列,若在comparator中原创 2016-03-16 23:47:55 · 3228 阅读 · 0 评论 -
RecyclerView ViewHolder getAdapterPotition return NO_POSITION!
RecyclerView ViewHolder getAdapterPotition return NO_POSITION!本文章主要从代码上简单分析: - getAdapterPosition返回NO_POSITION的原因场景之一(目前只碰到一个-_-): 点击RecyclerView中某一项后, 在执行android.view.View.performClick中, 通过Vi原创 2016-03-11 11:37:43 · 4782 阅读 · 6 评论 -
lifecycle架构,Transformations的switchMap该怎么理解好
可直接跳过前面的介绍直接看后面关于switchMap的说明,不太理解的可以配合前面的介绍LiveData<T>:内容为T类型数据的容器,可监听内容的变化且具有一定的实时性 对外提供监听容器内容变化的接口observe(LifecycleOwner, Observer) 会在适当的时期通知监听器 适当的时期:激活状态(LifecycleRegistry监听fragme...原创 2019-08-22 18:43:56 · 6005 阅读 · 0 评论 -
老物,dialog另类内存泄漏,不过不存在于ART(5.0+ && Debuggable=false)上,感兴趣的可以了解一下
有篇译文大概这么讲: dialog也有不寻常的内存泄漏,跟我们常见的handler.removeCallbacks移除runnable(匿名内部类持有了activity/fragment的引用)避免的内存泄漏不太一样。我们都知道常见的泄漏在于handler可能长时间持有了runnable,这个时间超过了activity/fragment的生命周期了,无法释放知道handler不再持有该r...原创 2019-09-04 08:11:37 · 273 阅读 · 0 评论 -
[小折腾] SharedPreferenceImpl$EditorImpl#apply引发的ANR场景
书本《Android工程化最佳实践》(作者金凯)中谈到SharedPreference会有ANR的可能,以及贴出关键源码(api19)和相关的log日志,读者可以先行看看。目前可以确定的是,若写文件真的耗时,不管在哪个线程执行apply,都有可能引发ANR。来个时序图,基于android api26可以看到,如果work耗时长,UI线程必定会阻塞等待,越长越容易引发ANR想要折...原创 2019-09-17 17:02:53 · 449 阅读 · 0 评论