-
对于不需要用的 View,设置它的 visibility 为 GONE 。这样防止 view 再占据布局的空间,而且也能在布局计算中将其忽略,加速处理过程。
-
Handler 发延迟消息的 run 方法内部,一定需要判空,即便是在外部已经判过空了,在 run 方法内部依旧需要再次判空!
-
Fragment 每个类都要有 newInstance() 方法
public static final BaseViewPagerFragment newInstance() {
BaseViewPagerFragment fragment = new AppFragment();
return fragment;
}
- Fragment not attach Activity
Fragment 开了线程或,线程走完,直接调用 Activity对象,这时 Activity 可能已经销毁了,应用闪退
Fragment 中,掉了线程再回调用 Activity 对象的,一定要判断 Activity 是否为空,或者已被销毁了
try {
if (activity == null ||activity.isFinishing() || (Build.VERSION.SDK_INT >= 17 && activity.isDestroyed())) { // activity正在关闭
return true;
}
} catch (Exception e) {
e.printStackTrace();
}
-
封装的方法一定要对每个参数做空指针判断,或者用 try catch 处理,别人使用的时候,不需要的参数,可能直接就传 null 对象了
-
解析 json 字段,做异常处理
-
文件操作,不要忘了 file.makedirs,否则文件夹不存在会报错
-
ListView 适配器数据变了,一定要马上 notifyDataChange ,否则很多手机会闪退,这个闪退捕捉不到具体闪退的代码,一定注意
-
尽量少用全局变量,需要的数据,一层一层传递过去;全局变量值容易被其他地方重新赋值了;要用的话,确认给变量赋值的地方很少
-
从一个 Activity 调整到另一个 Activity ,最好不要直接传 List 这样的数据,传一个 id 过去,在新的 Activity 自己查询;开始测试的时候 List 数据很小,发现不了问题,后面数据越来越多,就会闪退
-
一定不要在主线程中查询 SQL,除非可以完全确定,数据库表中的数据很少。否则使用一段时间后,应用就会卡死,闪退
-
数据库的操作,一定要考虑到数据很多的情况,查询的时候,SQL 能少字段就少字段,尽量不用 select * ,改用 select name , id ...
-
注意数组和 List 越界,做下判断,不要直接取,比如 list.get(i),arr[i]
扫码关注公众号:精选互联网资讯,每天花几分钟,获取全网最贴心的互联网资讯!
网友评论