TommyLemon / Android-ZBLibrary

🔥 Android MVP 快速开发框架,做国内 「示例最全面」「注释最详细」「使用最简单」「代码最严谨」的 Android 开源 UI 框架。 🔥 An Android MVP Framework with many demos, detailed documents, simple usages and strict codes.
Apache License 2.0
5.5k stars 1.38k forks source link

建议:Base基类页面简化 #9

Closed walorwang closed 7 years ago

walorwang commented 7 years ago

建议保持类单一职责: 1.显示/隐藏进度对话框封装到工具类中 2.页面跳转toActivity方法封装到工具类中

TommyLemon commented 7 years ago

toActivity,showShortToast,showProgressDialog这些都是很常用的方法,在CommonUtil里也都有。 1.如果大量把context传到工具类容易导致内存占用过高甚至是内存泄漏。 2.由于很常用,所以放在Base类里使用会方便很多,直接toActivity(intent);而不是CommonUtil.toActivity(context, intent); ProgressDialog还需要在activity onDestroy前dismiss,和activity生命周期相关。如果放到工具类,就得在activity onDestroy前CommonUtil.dismissProgressDialog(); 3.这些方法必须在UI线程(主线程)中使用,所以需要 runUiThread(new Runnable() { @Override public void run() { //TODO } }); 如果放到工具类,就得 ①每次使用都加上以上代码 或者 ②传入一个activity然后activity.runUiThread。而运行到这段代码时很可能activity已经onDestroy了,如果用方法②这时就会崩溃。而在Activity或Fragment中就可以很方便地通过判断生命周期状态isAlive来避免这个问题。

在设计时,应该注意把握一个度。诚然尽可能的遵守这些原则,会使代码维护起来更容易。但是维护粒度过细,所需要的设计和开发成本成倍增加,这显然是舍本逐末的。 http://www.jiagoushuo.com/article/1000097.html

walorwang commented 7 years ago

有道理。Get到。遵守多遵守少的道理。