1. 程式人生 > >Android中關閉Activity

Android中關閉Activity

1.知曉當前是哪個Activity


2.隨時關閉所有Activity

有時我們可能會打開了很多個Activity,突然來個這樣的需求,在某個頁面可以關掉所有的Activity並退出程式!好吧,下面提供一個關閉所有Activity的方法,就是用一個list集合來儲存所有Activity!

具體程式碼如下:

public class ActivityCollector {  
    public static LinkedList<Activity> activities = new LinkedList<Activity>();  
    public static void addActivity(Activity activity)  
    {  
        activities.add(activity);  
    }  
    public static void removeActivity(Activity activity)  
    {  
        activities.remove(activity);  
    }  
    public static void finishAll()  
    {  
        for(Activity activity:activities)  
        {  
            if(!activity.isFinishing())  
            {  
                activity.finish();  
            }  
        }  
    }  
}  

3.完全退出App的方法

上面說的是關閉所有Activity的,但是有些時候我們可能想殺死整個App,連後臺任務都殺死殺得一乾二淨的話,可以使用搭配著下述程式碼使用:

實現程式碼:

/** 
 * 退出應用程式 
 */  
public void AppExit(Context context) {  
    try {  
        ActivityCollector.finishAll();  
        ActivityManager activityMgr = (ActivityManager) context  
                .getSystemService(Context.ACTIVITY_SERVICE);  
        activityMgr.killBackgroundProcesses(context.getPackageName());  
        System.exit(0);  
    } catch (Exception ignored) {}  
}  

4.雙擊退出程式的兩種方法:

1)定義一個變數,來標識是否退出

// 定義一個變數,來標識是否退出
private static boolean isExit = false;
Handler mHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        isExit = false;
    }
};

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        if (!isExit) {
            isExit = true;
            Toast.makeText(getApplicationContext(), "再按一次退出程式",
                    Toast.LENGTH_SHORT).show();
            // 利用handler延遲傳送更改狀態資訊
            mHandler.sendEmptyMessageDelayed(0, 2000);
        } else {
            exit(this);
        }
        return false;
    }
return super.onKeyDown(keyCode, event);}

2)儲存點選時間:

//儲存點選的時間
private long exitTime = 0;
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        if ((System.currentTimeMillis() - exitTime) > 2000) {
            Toast.makeText(getApplicationContext(), "再按一次退出程式",
                    Toast.LENGTH_SHORT).show();
            exitTime = System.currentTimeMillis();
        } else {
                        exit();
                      }
        return false;
    }
        return super.onKeyDown(keyCode, event);
}
文章來自於:http://www.runoob.com/w3cnote/android-tutorial-activity-start.html