2011-08-08 51 views
2

我想在第一次打開應用程序時顯示一些圖像。或者如果它重新開放。我不希望應用程序在用戶按下後退按鈕時被殺死,以進入主屏幕。但是保持它活着,但仍然返回到主屏幕。如何覆蓋後壓不殺活動?

+2

它沒有被殺死 –

+0

那麼單擊後退按鈕和設備上的home按鈕有什麼區別? –

+0

編碼器,它有助於閱讀http://developer.android.com/guide/topics/fundamentals/activities.html – colig

回答

3

正如Andro_Selva所說,後退按鈕完成您的活動;它不會殺死應用程序。

如果要完成類似的東西按home鍵(這樣你的應用程序是隱藏的,但活動還活着),你可以做這樣的事情:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     moveTaskToBack(true); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

它比略有不同按Home鍵,因爲它只會將您帶到最後一個應用程序,當你啓動這個應用程序。所以它不一定會把你帶回發射器。但是這種行爲將更接近用戶在按下時所期望的。

你也可以把這個在體現你的根Activity下的:

android:alwaysRetainTaskState="true" 

這將阻止Android的完成所有的活動,如果他們已閒置約一個半小時的默認行爲。

0
how to override backpress to not kill activity? 

我相信你還沒有理解這裏的某些東西。當你按下後退按鈕並不意味着你正在殺死你的應用程序。這意味着你正在完成你的活動,這也意味着你的應用程序正在後臺運行。如果你想殺死你的活動必須由

int pid = android.os.Process.myPid(); 
    android.os.Process.killProcess(pid); 
  • 或手動進入設置 - >管理應用程序 - 這樣做的其中之一,

    1. 通過調用System.exit(0);
    2. 或者>選擇你的APP->點擊強行停止

    當您按下家鍵這意味着您的活動暫停或類似凍結的事情,當您再次訪問您的應用程序時,您可以從離開您的應用程序的位置恢復您的應用程序。

  • 2

    添加到您的活動

    public void onBackPressed() { 
        //finish(); this is what would normally happen 
    } 
    

    這種方式,你有返回鍵的完全控制。至於主鍵,你最好不要做任何事情。否則如果您的應用出現問題,用戶可能無法擺脫它,這可能會是一個大問題。此外,如果您查看Android的工作方式,當按下主鍵時,應用程序不會被終止,除非系統決定沒有足夠的內存來保存您的應用程序,在這種情況下,應用程序將關閉。