Android最佳实践
文章目录
- 定义变量时,UI变量单独放一块,数据变量放一块,空行隔开不要掺杂在一块。
使用UIL时,如果只是简单加载一个图片的bitmap,可以使用SimpleImageLoadingListener方法,而不是ImageLoadingListener。
1234567891011imageLoader.displayImage(detailModel.getData().getPicture(),headerBg,new SimpleImageLoadingListener() {@Overridepublic void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {headerBg.setImageBitmap(loadedImage);setBitmap(loadedImage);}});Activity或Fragment中对adapter.updateDataSet(data);时,
notifyDataSetChanged
的操作放在adapter的updateDataSet方法内执行。外部启动activity时,调用该activity的静态方法,例如
12345public static Intent newInstance(Context context, int tabIndexIfNeeded) {Intent intent = new Intent(context, UserGuideActivity.class);intent.putExtra(Constants.KEY_WHICH_TAB, tabIndexIfNeeded);return intent;}而外表类实例化该activity的intent的方法是
final Intent intent = UserGuideActivity.newInstance(this, UserGuideConstants.OPEN_BIZ_AREAS_GUIDE_VIEW);
类似地,启动fragment时,调用该fragment的静态方法,例如
1234567public static GuiseFragment newInstance(NGGuiseGroup guiseGroup) {GuiseFragment fragment = new GuiseFragment();Bundle bundle = new Bundle();bundle.putSerializable(EXTRA_GUISE_GROUP, guiseGroup);fragment.setArguments(bundle);return fragment;}而外表类实例化该fragment的方法是
final GuiseFragment guiseFragment = GuiseFragment.newInstance(guiseGroup);
发起网络请求之前,务必检测网络状态,只有网络可用时才允许发起网络请求。网络不可用时提示网络连接错误,不允许发起网络请求。
例如1234if (!Utils.isNetworkOn()) {showShortToast(R.string.network_down);} elsenet.getArticlePostDetail(APIKey.KEY_ARTICLE_POST_DETAIL, token, String.valueOf(postId), String.valueOf(postType));特殊地,比如视频播放只允许wifi网络下才可以播放,非wifi网络下中断播放。