2011-04-18 65 views
0

如何確定Home鍵是否被按下?如果按下,我想做一些處理並完成活動,因爲我不希望它在下次啓動時恢復。我無法在onStop中處理它,因爲從活動開始我開始另一個活動(因此即使在這種情況下onStop也會被調用)。Android:如何確定主鍵被按下

+0

據我所知(現在):你不能確定。和問題可能會重複http://stackoverflow.com/questions/1998278/android-capture-suppress-home-and-endcall-buttons-events – OcuS 2011-04-18 22:33:25

+0

不,它不是重複的那個問題...任何人請回答這個,。 – 2011-04-18 22:37:15

+0

可能的重複[如何檢測用戶在我的活動中按HOME鍵?](http://stackoverflow.com/questions/2208912/how-can-i-detect-user-pressing-home-key-in-my - 活動) – cHao 2011-09-20 17:25:36

回答

3

如何確定Home鍵是否被按下?

你不知道。

如果按下了,我想做一些處理並完成活動,因爲我不希望它在下次啓動時恢復。我無法在onStop中處理它,因爲從活動開始我開始另一個活動(即使在這種情況下onStop也會被調用)。

有許多方式,用戶可以將您的活動之一,包括:

  1. 由你開始另一個活動
  2. 通過用戶按下HOME
  3. 通過用戶按下BACK
  4. 由用戶接到電話或某些其他活動從不知所聞(例如鬧鐘)
  5. 通過用戶響應旋轉設備,把它在一個底座或以其他方式觸發配置變化

一般來說通知

  • 通過用戶,你根本不知道發生了哪些那些。 isFinishing()將覆蓋#3,並且有幾種方法可以識別#6,但從系統的角度來看,其他方面難以區分。

    如果您希望將場景#1視爲特殊場景 - 做一些不同的事情,因爲用戶正在轉向其中一項活動而不是其他事情 - 那麼這取決於您的實施情況。

  • +0

    那麼,如果我在活動中啓動另一項活動,我可以設置一些標誌嗎?如果設置了標誌,如果沒有設置,則不做任何事情,然後在onStop - 執行處理並完成應用程序(假設由於HOME鍵而結束)?此外,我檢查了消息傳遞應用程序中的行爲...如果用戶在撰寫masc和home鍵的過程中按下了他們保存到草稿,那麼應用程序如何知道在這種情況下.. plz澄清.. – 2011-04-18 22:54:48

    +0

    @Android_enthusiast:理想情況下,你重新設計您的應用程序,以便您不關心用戶如何離開您的活動。在Messenger應用程序方面,歡迎您在http://source.android.com上瀏覽它的源代碼。 – CommonsWare 2011-04-18 23:07:06