Android 日常开发总结的60条技术经验

2019-12-10 18:49:56丽君

16. arraylist执行remove时注意移除int和Integer的区别。你懂得。

17. Log请打上Tag,调试打印一定要做标记,能定位打印位置,否则尴尬是:不知道是哪里在打印。

18. 码块/常量/资源可以集中公用的一定共用,即使共用逻辑稍复杂一点也会值得,修改起来很轻松,修改一种,到处有效。

19. setSelection不起作用,尝试smoothScrollToPosition。ListView的LastVisiblePosition(最后一个可见子项)会随着getView方法执行位置不同变动而变。

20.与Activity通讯使用Handler更方便; 如果你的框架回调链变长,考虑监听者模式简化回调。

21.监听者模式不方便使用时,推荐EventBus框架库,使用时间总线,没接触过的同学可以自行脑补一下哦。

22. Handler在子线程线程使用Looper.prepare,或者new的时候给构造函数传入MainLooper来确保在主线程run。

23. timepicker 点击确定后需要clearFocus才能获取手动输入的时间。

24. 构造函数里面极度不推荐启动异步线程,会埋下隐患。比如:异步线程调用了本例的示例,就会悲剧等着崩溃吧。

25. 千万不要理所当然的以为一个对象不会为空,充分的做好容错处理;另外注意null也可以插入ArrayList等容器中。

26. ExpandableListView的子列表不能点击(禁用)要把Adapter的isChildSelectable方法返回true。

27. UI显示注意内容过长的情形要提前使用ScrollView否则在小手机上尴尬你懂得。

28. 注意按钮的感应范围不小于9mm否则不易点击;输入框注意光标的位置更易用户输入。

29. 服务器和客户端尽量统一唯一标识(有可能是ID),否则多少会有歧义和问题。

30. 注释,尽量去写足够的注释,去描述一下思路,达到看了可以明白某一块代码的效果。

31. 完整型数据一定要用Sqlite的Transaction,大数据一定要用。粗略测试插入100个数据有20倍的提速,插入1000个数据就有100多倍的提速。

32. 避免String=”null”的情况出现String = null,=””都可以。避免出现title=”无主题”这样的数据提交到数据库浪费空间。