天天看點

android 徹底關閉應用程式(back按鍵)

在開發android應用時,常常通過按傳回鍵(即keyCode == KeyEvent.KEYCODE_BACK)就能關閉程式,其實大多情況下該應用還在任務裡運作着,其實這不是我們想要的結果。

我們可以這樣做,當使用者點選自定義的退出按鈕或傳回鍵時(需要捕獲動作),我們在onDestroy()裡強制退出應用,或直接殺死程序,具體操作代碼如下:

@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {

		//按下鍵盤上傳回按鈕
		if(keyCode == KeyEvent.KEYCODE_BACK){
						finish();
			return true;
		}else{		
			return super.onKeyDown(keyCode, event);
		}
	}


	@Override
	protected void onDestroy() {
		super.onDestroy();

		System.exit(0);
		//或者下面這種方式
		//android.os.Process.killProcess(android.os.Process.myPid()); 
	}
           

但是經過測試在2.1版本以前,我們可以使用如下方法來退出應用:

但是在2。2之後這種方法就不靈光了,個人以自己開發經驗來講,經常用的是自己建立一個清單來儲存每次新生成的Activity執行個體,在想退出程式時,調用一個循環來進行全部的finish操作,今天在浏覽網頁時,發現一個兄弟用了找個方法,還沒來得及測試下效果,各位看到這篇文章的可以測試下,然後回報一下結果給我,呵呵,我這幾天沒時間進行測試,拜托,拜托:

方法就是:

使用Android的Broadcast機制。在所有的Activity中注冊退出程式的消息,當收到消息時調用finish方法。然後再有退出程式功能的Activity上廣播關閉消息。

代碼如下:

在需要退出程式的Activity(CommonActivity的子類)中,退出程式代碼如下: