1、自定义Application
import java.util.Stack;
import android.app.Activity;
import android.app.Application;
public class MyApplication extends Application {
private static MyApplication mApplication;
/** 页面栈 */
private static Stack<Activity> mActivityStack;
@Override
public void onCreate() {
super.onCreate();
mApplication = this;
}
/**
* 获取Application实例
*
* @return
*/
public static MyApplication getInstance() {
return mApplication;
}
/**
* 添加Activity
*
* @param activity
*/
public static void addActivity(Activity activity) {
if (mActivityStack == null) {
mActivityStack = new Stack<Activity>();
}
mActivityStack.add(activity);
}
/**
* 结束指定的Activity
*
* @param activity
*/
public static void finishActivity(Activity activity) {
if (activity != null) {
mActivityStack.remove(activity);
activity.finish();
activity = null;
}
}
/**
* finish all Activity
*/
public static void finishAllActivity() {
for (int i = 0, size = mActivityStack.size(); i < size; i++) {
if (null != mActivityStack.get(i)) {
mActivityStack.get(i).finish();
}
}
mActivityStack.clear();
}
}
2、BaseActivity类
import android.app.Activity;
import android.os.Bundle;
/**
* BaseActivity类
*/
public class BaseActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 添加Activity 到堆栈
MyApplication.addActivity(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
// 移除Activity
MyApplication.finishActivity(this);
}
}
3、让子Activity去extends BaseActivity