android开发规范记录

1.Android基本组件##

(1)Activity之间进行数据通信,可能会数据量很大,建议不要用Intent+Parcelable的方式。可以使用
EventBus,避免造成TransationTooLargeException。
(2)应该避免在Service的onStartCommand或者onBind方法中执行耗时操作,可以使用IntentService或者其他异步机制来完成。
(3)Activity之间进行隐形跳转,Intent发出之前应该使用resolveActivity做检查,避免造成类找不到的异常。
(4)BroadcastReceiver的onReceive方法尽量避免进行异步操作,因为耗时超过10秒钟,可能会被系统杀死。应该交给IntentService去完成。
(5)要避免使用隐式Intent广播重要的敏感信息,因为有可能会被其他注册了相应BroadcastReceiver的app拦截。对信息安全造成威胁,而且恶意攻击者还能造成App瘫痪。
(6)Fragment在添加的时候,应该确保FragmentTransaction.commit()在activity的onPostResume()或者FragmentActivity的onResumeFragments内调用。如果有必要也可以在onCreate中调用。应为activity有可能因为某种原因被销毁,,在销毁之前会调用其onSaveInstanceState方法保存自己的状态。如果你的FragmentTransaction.commit()调用是在保存状态之前,会造成在恢复时页面无法恢复,出现错误。
(7)应该避免在activity的onDestroy中做释放资源的操作。比如一些缓存的清理,一些工作线程的的停止和销毁,应为onDestroy的调用时机有可能会比较晚。应该在onPause或者onStop中结合isFinishing的判断来执行。
(8)应该避免使用嵌套Fragment。因为内嵌的fragment收不到onActivityResult的回调,需要宿主Fragment记性转发,被继承的onRetainInstance会导致fragment重建时触发多次,造成逻辑混乱、资源浪费。还有可能会造成一些慕名奇妙的闪动等突变效果,影响体验。

你可能感兴趣的:(android开发规范记录)