时间:2018-08-10 00:00:00 来源:信盈达 作者:
1. 监听者模式不方便使用时,推荐 EventBus 框架库,使用时间总线,没接触过的同学可以自行脑补一下哦。
2. Handler 在子线程线程使用 Looper.prepare,或者 new 的时候给构造函数传入 MainLooper 来确保在主线程 run。
3. timepicker 点击确定后需要 clearFocus 才能获取手动输入的时间。
4. 构造函数里面极度不推荐启动异步线程,会埋下隐患。比如:异步线程调用了本例的示例,就会悲剧等着崩溃吧。
5. 千万不要理所当然的以为一个对象不会为空,充分的做好容错处理;另外注意 null 也可以插入 ArrayList 等容器中。
6. ExpandableListView 的子列表不能点击(禁用)要把 Adapter 的 isChildSelectable 方法返回 true。
7. UI 显示注意内容过长的情形要提前使用 ScrollView 否则在小手机上尴尬你懂得。
8. 注意按钮的感应范围不小于 9mm 否则不易点击;输入框注意光标的位置更易用户输入。
9. 服务器和客户端尽量统一唯一标识(有可能是 ID),否则多少会有歧义和问题。
10. 注释,尽量去写足够的注释,去描述一下思路,达到看了可以明白某一块代码的效果。
11. 完整型数据一定要用 Sqlite 的 Transaction,大数据一定要用。粗略测试插入 100 个数据有 20 倍的提速,插入 1000 个数据就有 100 多倍的提速。
12. 避免 String=”null”的情况出现 String = null,=””都可以。避免出现 title=”无主题”这样的数据提交到数据库浪费空间。
13. 存在多个不同的 dbhelper 实例情况下,sqlitedatabase 对象必然存在不同的实例,多线程同时写入数据,轮流写入数据时会不定时的报 db is locked,引起崩溃,不管是操作同张表还是异表。读和写可以同时并发,轮流无规律的交替执行。同时写入数据时解决方案是用并发的每个线程都用事 务,db 则不会 lock,按次整体写入。
14. 建议整个应用维护一个 dbhelper 实例,只要 db 没有关闭,全局就只有一个 db 实例,多线程并发写入 db 不会 lock,严格交替进行写入:123123123。。。(123 代表不同线程,轮流插入一个记录),读和写均不会锁住 db,读写交替并没有规律,执行次数和程度看 cpu 分配给哪个线程的时间片长。
15. 一个任务使用事务嵌套N个事务,N个事务中有一个失败,这个任务整体失败,全部成功后,数据才写入,具有安全性,整体性。并且事务写入大批量数据的效率经 实际测试成百上千倍的高于一般的单个写入。数据库大量数据、多线程操作建议使用 LiteOrm 数据库框架,更稳定简单。
16. 经常需要用 ListView 或者其它显示大量 Items 的控件实时跟踪或者查看信息,并且希望最新的条目可以自动滚动到可视范围内。通过设置的控件 transcriptMode 属性可以将 Android 平台的控件(支持 ScrollBar)自动滑动到最底部。
17. Long a; 判断a有没有赋值,if (a == 0) 在a没有赋值情况下会报错。应该 if (a == null),Integer、Floag 等也一样,原因你懂,只是提醒你要小心喔。
18. 编码遇到读写、出入等逻辑要双向考虑,文件导入导出,字符字节相互转换都要两边转码。
19. 一个 int 值与一个 Integer 对象(能包含 int 值的最小对象)的大小比率约为 1:4(32 位和 64 位机器有不同)。额外的开销源于 JVM 用于描述 Java 对象的元数据也就是 Integer,(Long、Double 等也是)。
20. 对象由元数据和数据组成。元数据包括类(指向类的指针,描述了类的类型),标记(描述了对象状态,如散列码、形状等),锁(对象同步信息)。数组对象还包括大小的元数据。
信盈达2008年在深圳特区南山高新科技园成立。自成立至今近九年来专注为企业和个人提供高端方案设计、高端嵌入式/Android培训等服务。公司下设信盈达实训学院、信盈达研发中心、信盈达教学仪器三大业务板块。九年来公司坚持"技术领先、服务领先",以雄厚的实力和专业的品质成为国内唯一有实力从产品最底层研发到系统层开发的嵌入式实训、产品解决方案提供商。为中国IT行业提供最具价值的职业教育服务。专业培训i嵌入式、物联网、人工智能、Java、单片机等课程,想了解更多信息点击立马咨询
免费领取试听卡
申请已经提交
老师会马上给您安排试听课程!
申请出错了
您可以加老师QQ:914865590报名咨询!