可以新建一个BaseActivity继承自Activity,然后在BaseActivity中重写onCreate方法
示例代码
public class BaseActivity extends Activity{
@Override
protected void onCreate(Bundle saveInstanceState){
Log.d("BaseActivity",getClass().getSimpleName());
}
}
接下来我们让BaseActivity成为所有Acitivty的基类,这样其他Activity既有Activity的特性,在进入Activity的时候,也可以打印Log表明身份
如果目前你的手机界面还停留在ThirdActivity,你会发现当前像退出程序是非常不方便的,需要连按三次Back键盘才行,按Home键只是挂起程序,并没有退出。
其实解决思路非常简单,只需要一个专门的集合类对所有的Activity进行管理就可以了
新建一个ActivityCollector类作为活动管理器:
public class ActivityCollector{
public static List<Activity> activities = new ArrayList<Activity>();
public static void addActivity(Activity activity){
activities.add(activity);
}
public static void removeActivity(Activity activity){
activies.remove(activity);
}
public static finishAll(){
for(Activity activity : activities){
if(!activity.isFinishing()){
activity.finish();
}
}
}
}
在活动管理器中,我们通过一个List来暂存Activity,然后提供一个addActivity()方法用于向List中添加一个活动,提供了一个removeActivity()方法用于从List中移除活动,最后提供了一个finishAll()方法用于将List中存储的Activity全部销毁。
接下来修改BaseActivity中的代码:
public class BaseActivity extends Activity{
@Override
protected void onCreate(Bundle saveInstanceState){
Log.d("BaseActivity",getClass().getSimpleName());
ActivityCollector.addActivity(this);
}
@Override
proected void onDestroy(){
super.onDestroy();
ActivityCollector.removeActivity(this);
}
}
这样,不管在任何地方退出程序,只需要调用ActivityCollector的finishAll方法即可。