代码改变世界

随笔分类 -  Android

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

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

Android SQLite总结

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

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

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

Android EditText被软键盘遮盖处理

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

ListView position

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

Android的layout_weight和weightSum

2015-10-20 10:07 by soar., 1265 阅读, 收藏, 编辑
摘要: 先看一下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 阅读, 收藏, 编辑
摘要: 去掉对“Group items by category"的勾选。 阅读全文

Android布局1

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

关于root

2014-02-12 10:56 by soar., 859 阅读, 收藏, 编辑
摘要: 1、root优缺 android的root跟苹果越狱很类似,可以享受“解禁”后的很多自由。 1、删除系统中不需要的一些app,特别是一些厂商强制安装的app。 2、美化系统,例如修改字体,修改开关机音乐、动画等; 3、可以更细致的优化系统,例如屏蔽掉一些自动运行的app; 当然,android root后带来的肯定远不止这些好处。但root后毫无约束的自由就会产生很多不可控的问... 阅读全文

Android中关于日期时间与时区的使用总结

2013-12-21 16:58 by soar., 11323 阅读, 收藏, 编辑
摘要: 在开发Android的过程中,出现过几次由于日期时间导致的问题,而且主要是由于时区的原因导致,所以一直想总结一下,形成一个良好的开发规范。 一、Unix时间戳 Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表 阅读全文

Activity相关知识点总结

2013-12-19 01:54 by soar., 1885 阅读, 收藏, 编辑
摘要: 一、Activity状态 Activity有三种状态:active/running、paused、stopped。 1、active/running状态,在当前屏幕时,即用户可见的Activity,位于当前Task的栈顶。 2、paused状态,Activity失去焦点但对用户依然可见。也就是说在它上面有另外一个非全屏或者透明的Activity,并成为了当前的焦点。它还没有被其他的Ac... 阅读全文

关于onConfigurationChanged

2013-11-10 15:43 by soar., 779 阅读, 收藏, 编辑
摘要: 这两天测试app时,发现一个奇怪问题,app在启动后,Activity会onCreate两次,起初以为是横屏设置导致,随即在Activity中添加了android:configChanges="orientation|screenSize|keyboardHidden",经测试问题还是未解决。最后反复观察,发现设备在用wifi(不插入sim卡)时,并不存在该问题。所以怀疑是sim或移动上网产生... 阅读全文