http://www.ilingxi.com/blog/duanhongchang/?p=72
我們都知道Activity的finish方法只能退出當前的Activity,但如果我們希望一鍵退出所有已經create的Activity又該如何做呢?很簡單,我們通過單例模式設計了一個管理當前活動的Activity的類,名叫MyActivityManager,代碼如下:
import java.util.LinkedList;
import java.util.List;
import android.app.Activity;
import android.app.Application;
/**
* Activity管理類
* 1、activity():儲存Activity
* 2、exit():關閉所有儲存的Activity
* @author 段宏昌
*
*/
public class MyActivityManager extends Application {
/**
* Activity列表
*/
private List<Activity> activityList = new LinkedList<Activity>();
/**
* 全域唯一執行個體
*/
private static MyActivityManager instance;
/**
* 該類採用單例模式,不能執行個體化
*/
private MyActivityManager()
{
}
/**
* 擷取類執行個體對象
* @return MyActivityManager
*/
public static MyActivityManager getInstance() {
if (null == instance) {
instance = new MyActivityManager();
}
return instance;
}
/**
* 儲存Activity到現有列表中
* @param activity
*/
public void addActivity(Activity activity) {
activityList.add(activity);
}
/**
* 關閉儲存的Activity
*/
public void exit() {
if(activityList!=null)
{
Activity activity;
for (int i=0; i<activityList.size(); i++) {
activity = activityList.get(i);
if(activity!=null)
{
if(!activity.isFinishing())
{
activity.finish();
}
activity = null;
}
activityList.remove(i);
i–;
}
}
}
}
在每個Activity的onCreate方法中調用MyActivityManager的addActivity方法,然後在需要使用一鍵退出的地方調用MyActivityManager中的exit方法即可。