开始新项目前的准备工作
一、BaseActivity类的基本封装,减少代码重复量
二、管理activity关系
BaseActivity.java:
public abstract class BaseActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityController.addActivity(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
ActivityController.removeActivity(this);
}
//初始化控件
protected abstract void initView();
//初始化数据
protected abstract void initData();
//设置适配器
protected abstract void setAdapter();
//设置监听事件
protected abstract void initEvent();
//通过类名启动Activity
protected void openActivity(Class<?> pClass) {
openActivity(pClass, null);
}
//通过类名启动Activity并携带Bundle数据
protected void openActivity(Class<?> pClass, Bundle pBundle) {
Intent intent = new Intent(this, pClass);
if (pBundle != null) {
intent.putExtras(pBundle);
}
startActivity(intent);
}
//通过action启动Activity
protected void openActivity(String pAction) {
openActivity(pAction, null);
}
//通过action启动Activity并携带Bundle数据
protected void openActivity(String pAction, Bundle pBundle) {
Intent intent = new Intent(pAction);
if (pBundle != null) {
intent.putExtras(pBundle);
}
startActivity(intent);
}
//结束所有Activity允许子类调用
protected void finishAll() {
ActivityController.finishAll();
}
}
ActivityController.java:
public class ActivityController { private static List<Activity> activities = new ArrayList<Activity>(); //加入activity public static void addActivity(Activity activity) { activities.add(activity); } //移除某个activity public static void removeActivity(Activity activity) { activities.remove(activity); } //结束所有activity public static void finishAll() { //遍历activity for (Activity activity : activities) { if (!activity.isFinishing()) { activity.finish(); } } } }