一直想写点文章用于提升开发效率,不知道从哪里下手,无意中看到了某论坛在讨论android开发所遇到的坑,于是把这些坑拿来总结到一起,和大家一起分享。
以下链接是相关的文章:
http://www.kuqin.com/shuoit/20151105/348782.html?url_type=39&object_type=webpage&pos=1
http://www.zhihu.com/question/27488517
http://www.zhihu.com/question/27818921
http://djt.qq.com/article/view/1193
http://www.tuicool.com/articles/mINNjif
1、TextView,调用 setText 方法设置一个 int 型的数据,千万要将该值转为 String。
2、bitmap,生成的bitmap在使用完成后务必回收。
3、第三方sdk,部分sdk需要签名功能才会生效,不要在这里浪费太多时间,例如微信第三方登录。
4、api,在使用api的时候如果已经有了android api,就不要使用java SE的api了,例如使用线程的地方尽量不要new Thread,而是使用 AsyncThread 。
5、四大组件注册,创建了四大组件一定记得要在 AndroidManifest 文件中声明(当然 BroadcastReceiver 可以动态注册)。
6、context,对于需要使用Context对象作为参数的函数,要使用getApplication()获取Context对象当参数,而不要使用this,除非你需要特定的组件实例!getApplication()返回的Context是属于Application的,它会在整个应用的生命周期内存在,远大于某个组件的生命周期,所以即使某个引用长期持有Context对象也不会引发内存泄露。
7、json ,json属性节点不能有空格。
8、asset,asset下使用第三方字体 xx.ttf 必须都为小写。
9、startActivity,context.startActivity()要intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)。
10、R文件,R文件不能生成基本都是xml有错误,仔细检查。
11、图片资源,图片资源名称不要以a开头,尤其a+数字,比如avator01等,很多情况下会出现显示不了的情况,大概记得是android自身的资源会使用a开头来命名,遇到了不妨试试改名,不然真会死人。
12、println,有的手机System.out.println(null) 会闪退。
13、PopupWindow,不要再Activity的onCreate方法中直接调用显示,解决方案是handler post。
14、MediaPlayer,停止MediaPlayer时调用release方法,否则音频不能正常播放。
15、除数是否做了 0值判断,如果除数是0的话会运行异常。