代码改变世界

解决Android5.0以下Dialog引起的内存泄漏

2017-10-14 00:44 by soar., 7602 阅读, 0 推荐, 收藏, 编辑
摘要:最近项目开发中,开发人员和测试人员均反应在android5.0以下手机上LeakCanary频繁监控到内存泄漏,如下图所示,但凡用到Dialog或DialogFragment地方均出现了内存泄漏。 如上图所示,存在一个Message实例的obj成员变量,间接引用着Activity的实例,导致Activity无法正常退出。通过Android Monitors内存快照分析,确实有Messa... 阅读全文

关于负数

2017-10-12 18:44 by soar., 999 阅读, 0 推荐, 收藏, 编辑
摘要:本文主要是想阐述清楚以下几个知识点: 1、与负数相关的一些基础概念; 2、负数的二进制和十进制之间的相互转换; 3、负数与数据类型; 一、基础概念 机器数:数值在计算机中的二进制表示形式,叫做这个数值的机器数;机器数是带符号的,在计算中用一个数的最高位存放符号,正数为0,负数为1; 真值:因为负数的机器数,最高位为符号位,所以机器数的形式值就不等于真正的数值,不像正数那么“... 阅读全文

Android SQLite总结

2017-02-13 17:33 by soar., 3434 阅读, 0 推荐, 收藏, 编辑
摘要:SQLite在Android一般应用中还是比较常用,早期的时候碰到过不少坑,其中最烦的就是多线程并发读写问题,今天正好整理一下,做个笔记,也欢迎指正、讨论和补充。 一、查询优化 1、wal模式 开启wal模式,可以实现并发读,且读写不阻塞,当然写与写之间仍然阻塞,该模式需要android3.0+才支持。 当开启了wal模式更新数据时,会先将数据写入到*.db-wal文件中,而不... 阅读全文

关于v4包的Fragment过渡动画的事件监听无响应问题解决

2016-12-04 22:32 by soar., 1567 阅读, 0 推荐, 收藏, 编辑
摘要:项目中部分功能模块采用了单Activity+多Fragment模式,当Fragment切换时,需要在过渡动画执行完后做一些操作,通常就是在自己封装的FragmentBase中重写onCreateAnimation方法,创建一个Animation对象,并添加动画的事件监听。而最近升级了v4包后,突然发 阅读全文

Android EditText被软键盘遮盖处理

2016-10-13 20:03 by soar., 11189 阅读, 1 推荐, 收藏, 编辑
摘要:这两天android app新增了透明栏效果,结果发现键盘弹起后会遮盖屏幕底部的EditText,没有像想象中的调整窗口大小,并滚动ScrollView,将EditText显示在键盘上方。之前也遇到过类似问题,所以解决后就干脆写把所有关于EditText和键盘之间问题和解决思路都记录一下,以便以后查阅。 一、在5.0以前,如果EditText设置了gravity=“center|rig... 阅读全文

ListView position

2016-09-14 15:24 by soar., 621 阅读, 0 推荐, 收藏, 编辑
摘要:在使用listview的时候,我们经常会在listview的监听事件中,例如OnItemClickListener(onItemClick)中,或listview的adapter中(getView、getItem、getItemId等)看到position这个变量。在我们没有为listview添加h 阅读全文

Android的layout_weight和weightSum

2015-10-20 10:07 by soar., 1247 阅读, 0 推荐, 收藏, 编辑
摘要:先看一下weightSum属性的功能描述:定义weight总和的最大值。如果未指定该值,以所有子视图的layout_weight属性的累加值作为总和的最大值。把weightSum的定义搁在这里,先去看看android:layout_weight如何使用。 android:layout_weig... 阅读全文

无法在线安装Genymotion Eclipse插件,显示”There are no categoryzed items“

2015-10-12 16:08 by soar., 386 阅读, 0 推荐, 收藏, 编辑
摘要:去掉对“Group items by category"的勾选。 阅读全文

Android布局1

2014-05-06 13:47 by soar., 436 阅读, 0 推荐, 收藏, 编辑
摘要:一、FrameLayout 1) android3.0以下系统中,FrameLayout包含的一级节点View的layout_margin依赖于layout_gravity属性(可以将layout_gravity理解为margin的参考点),必须设置layout_gravity属性layout_margin才生效。如果在开发中需要兼容2.x系统,在设置FrameLayout的margin时,一... 阅读全文

EditText小记

2014-04-26 00:27 by soar., 1921 阅读, 0 推荐, 收藏, 编辑
摘要:一、android:textCursorDrawable 今天在小米2s(Android4.1.1)上测试app时,发现所有输入框都没了光标。其实是因为光标默认为白色,而我将EditText的背景置为透明,EditText外层容器背景设置为圆角白色背景。这样EditText的背景就是白色,和光标一样,所以就看不到光标。 最后用textCursorDrawable属性解决,可以用他来将光标设... 阅读全文