退出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 {
//Activity清單
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();
}
}
}