一些技巧
- 异步线程应该在Activity、Fragment的生命周期结束时停止掉
- 减少不必要的线程切换
- 主线程中throw的异常要catch
- 不要在主线程做耗时的操作
有时候,线上会出现一些”莫名其妙”的bug,比如用户用的好好的,突然就爆出一个空指针异常,这个异常的提示信息如下:
1 | java.lang.RuntimeException: Unable to start activity |
看上去好像就是一般的空指针,但这个异常发生在启动Activity的时候。ActivityThread的performLaunchActivity方法确实有catch
1 | ... |