退出APP时清空栈里所有activity
一、Intent方式
- 辅助activity,退出时指明跳转到改Activity,启动后立即结束
/**
- 退出app时清空栈里的所有activity,辅助activity
- Created by Administrator on 2016/9/10.
*/
public class AssistActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
finish();
}
}
Intent intent = new Intent(context, AssistActivity.class)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK)
context.startActivity(intent)
二、用一个类来缓存已存在的activity,用list集合来保存还在运行的activity
/**
* 核心工具类
* Created by sks on 2016/4/9.
*/
public class CoreUtils {
public static ArrayList<Activity> activityList = new ArrayList<Activity>();
/**
* 添加Activity到列表中
* @param activity
*/
public static void addAppActivity(Activity activity){
if(!activityList.contains(activity)){
activityList.add(activity);
}
}
/**
* 从列表移除Activity
* @param activity
*/
public static void removeAppActivity(Activity activity){
if(activityList.contains(activity)){
activityList.remove(activity);
}
}
/**
* 退出应用程序
*/
public static void exitApp(Context context){
L.d("销毁Activity size:" + activityList.size());
for (Activity ac : activityList) {
if(!ac.isFinishing()){
ac.finish();
}
}
activityList.clear();
android.os.Process.killProcess(android.os.Process.myPid());
}
/**
* 清空List集合
* @param list
*/
public static void clearList(List<?> list){
if(list!=null){
list.clear();
}
}
}