1、第一种方法是利用Activity的启动模式:设置程序中的第一个activity比如WelcomeActivity的启动模式为,android:launchMode="singleTask",这种模块的特点是当activity销毁时,之前启动的activity也会销毁,注意在跳转到其他activity时不要finish掉,当要结束时整个应用时先调用
Intent intent=new (contex,WelcomeActivity.class);跳到WelcomActivity,然后finish退出welcomeActivity即可。
2、第二种方法建一个activity的管理类:一般新建一个基类BaseActivity,然后在基类的onCreate()中添加,在onDestroy()中删除。
packagecn.sportsface.pioneer.util;
importandroid.app.Activity;
importjava.util.LinkedList;
importjava.util.List;
/**
* Activity的管理类
* Created by zhuliyi on 2016/3/29.
*
*/
public classActivityManagerUtils {
/**
* 转载Activity的容器
*/
privateListactivityList=newLinkedList();
private staticActivityManagerUtilsinstance=newActivityManagerUtils();
/**
* 将构造函数私有化
*/
privateActivityManagerUtils(){};
/**
* 获取ActivityManagerUtils的实例,保证只有一个ExitAppUtils实例存在
*@return
*/
public staticActivityManagerUtilsgetInstance(){
returninstance;
}
/**
* 添加Activity实例到mActivityList中,在onCreate()中调用
*@paramactivity
*/
public voidaddActivity(Activity activity){
activityList.add(activity);
}
/**
* 从容器中删除多余的Activity实例,在onDestroy()中调用
*@paramactivity
*/
public voidremoveActivity(Activity activity){
if(activityList.contains(activity)){
activityList.remove(activity);
}
}
/**
* 退出程序的方法
*/
public voidexit(){
// for (Activity activity:activityList) {//这个操作有误,因为activity在栈中的左右顺序是先进后出,这个方法先把栈底的元素给finish掉,不合乎常理,程序会出错
// activity.finish();
// }
for(inti=activityList.size()-1;i>=0;i--){
Activity activity=activityList.get(i);
activity.finish();
}
System.exit(0);
}
网友评论