2012-10-26 25 views
3

我是新來的Android應用程序的開發。如何在Android中關閉總體應用程序?

我開發了一個android應用程序,在這個應用程序中,當用戶按下退出按鈕時,我稱之爲finish()方法。此方法僅關閉當前活動。

我的要求是,當我在退出按鈕點擊,就應該關閉所有活動,它顯示的菜單頁面。這可能嗎?

回答

3

該對象已接受了一些討論,here是一個應該包含大部分的您正在尋找的信息。

另請參閱Android Documentation on Activities中的活動生命週期和流程生命週期,以瞭解關閉應用的方式和原因。

3

當你從一個活動活動,呼籲finish()。所以在android stack一個活動會得到finish() or get killed。當您按下背面或頂部活動退出按鈕,然後棧變空,然後你就進入菜單屏幕或主屏幕。

例如:當你從一個活動將B活性執行下面的步驟:

startActivity(new Intent(A.this, B.class)); 
finish(); 

所以你一個活動得到完成,&新活動得到啓動。在這裏,當你按下返回按鈕或退出按鈕時,你將進入主屏幕或菜單屏幕。

這裏,我們有兩種方法finish or kill後退按鈕按下應用

  1. 使用finish()關閉或完成的Android屏幕上的當前活動。

    例如:你有兩個活動,即一個 & 。你會使用意圖從啓程活動活動,現在前景胡亞蓉是,你想回去&殺活動&轉到一個胡亞蓉使用finish()的onclick後退按鈕的。如果您對一個活動,則它將關閉應用程序。見下面的代碼。

    public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
    finish(); 
    } 
    return super.onKeyDown(keyCode, event); 
    } 
    
  2. 使用android.os.Process.killProcess(android.os.Process.myPid());殺死應用程序即強行關閉應用程序&後藤下面的代碼家裏screen.see。

    public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
    // Kills & force closes the app 
    android.os.Process.killProcess(android.os.Process.myPid()); 
    } 
    return super.onKeyDown(keyCode, event); 
    } 
    
+0

沒有生產代碼應該使用'killProcess()'。 – CommonsWare

+0

@CommonsWare - 你的權利,不應該使用killProcess()。這不是一個好習慣。 –

1

我的要求是當我點擊退出按鈕時,它應該關閉所有活動並顯示菜單頁面。

假設「菜單頁」是你的一個活動,叫startActivity(),與Intent識別你的「菜單頁面」,幷包括FLAG_ACTIVITY_CLEAR_TOPFLAG_ACTIVITY_SINGLE_TOP爲標誌您Intent。這將清除您的任務中的所有活動,並將現有的「菜單頁」帶到前臺(如果沒有,則創建「菜單頁」的實例)。

相關問題