關於一次退出多個Activity的方法

單個activity退出可直接調用finish(); 但是一次推出多個呢?

比如:我依次進入不同Activity,A->B->C.(在A 進入B  在B 進去C)

若我在C activity返回鍵的時候,正常模式爲退到了B activity,在返回鍵退到了A activity。然後再返回鍵退出應用

但是我想在C activity 按返回鍵時直接退出應用。

這就是具體問題的由來, 一次退出多個activity。

解決辦法:

第一:在你的項目中導入此類,類名:SysApplication:

<span style="font-size:12px;">package com.example.viewpage; //這個是我的包,改成你自己的包名
import java.util.LinkedList; 
import java.util.List; 
import android.app.Activity; 
import android.app.AlertDialog; 
import android.app.Application; 
import android.content.DialogInterface; 
import android.content.Intent; 
 
public class SysApplication extends Application { 
    private List<Activity> mList = new LinkedList<Activity>(); 
    private static SysApplication instance; 
 
    private SysApplication() {   
    } 
    public synchronized static SysApplication getInstance() { 
        if (null == instance) { 
            instance = new SysApplication(); 
        } 
        return instance; 
    } 
    // add Activity  
    public void addActivity(Activity activity) { 
        mList.add(activity); 
    } 
 
    public void exit() { 
        try { 
            for (Activity activity : mList) { 
                if (activity != null) 
                    activity.finish(); 
            } 
        } catch (Exception e) { 
            e.printStackTrace(); 
        } finally { 
            System.exit(0); 
        } 
    } 
    public void onLowMemory() { 
        super.onLowMemory();     
        System.gc(); 
    }  
}</span>
在你打開的每個acticity 的setContentView(R.layout.xx)前面(oncraet後)

 SysApplication.getInstance().addActivity(this);  //添加當前Acitivity到ancivitylist裏面去

在想退出的時候調用SysApplication.getInstance().exit();可直接關閉所有的Acitivity並退出應用程序。

(我是返回鍵事件退出,)

比如你要在C activity按鍵退出應用,則在C activity重寫onKeyDown函數:

<span style="font-size:14px;">@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {// 應用程序返回鍵的捕獲
		if(keyCode == KeyEvent.KEYCODE_BACK){//按返回鍵時
			SysApplication.getInstance().exit();//調用此句代碼
			return true;
		}
		return true;
	}
//	@Override
//	protected void onDestroy() {
//		super.onDestroy();
//		</span><span style="font-size:14px;">SysApplication.getInstance().exit();</span><span style="font-size:14px;"> 	}
}</span>
我不知道下邊的ondestory是否可行-。-


   


發佈了32 篇原創文章 · 獲贊 20 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章