Android 开发注意事项

  • 对于不需要用的 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]


不要给自己的人生设限

你可能感兴趣的:(Android 开发注意事项)