程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> button-Android:重寫後退按鈕,使它可以像home鍵

button-Android:重寫後退按鈕,使它可以像home鍵

編輯:編程綜合問答
Android:重寫後退按鈕,使它可以像home鍵

當點擊後退按鈕,我希望我的應用程序停止,而不是退出。
在android文檔中是這樣說的:
當後退被按下的時候,並不是所有的activity都有退出的行為。當使用者開始在Music應用程序播放音樂的時候,然後按BACK,應用程序重寫了正常的後退行為,阻止播放activity退出,然後繼續播放音樂,盡管它的activity不會再看見。
我應該怎麼在我自己的應用程序復制這個功能?
我認為這有三個可能性。。。
捕獲後退按鈕按下的事件(像下邊一樣)然後調用home鍵調用的任何方法。

@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {
   if ((keyCode== KeyEvent.KEYCODE_BACK)) {
       Log.d(this.getClass().getName(), "back button pressed");
   }
   return super.onKeyDown(keyCode, event);}

捕獲後退按鈕的點擊事件然後做一個虛假的home鍵的點擊。
捕獲後退按鈕的點擊事件,然後home視圖的activity,有效的把我的應用程序的activity放到了停止狀態。

最佳回答:


大多數情況下,你需要創建一個Service來在後台執行一些事情,而你的可見的Activity僅僅是控制這個Service(我確定音樂播放器是同樣的方式工作,所以文檔中的例子有點不符合)。如果是這樣的話,那麼你的Activity可以像往常一樣完成,而且Service仍然會運行。
一個更簡單的方法是捕獲Back按鈕的點擊事件然後調用moveTaskToBack(true) ,就像下邊這樣:

@Overridepublic
 boolean onKeyDown(int keyCode, KeyEvent event) {
   if (keyCode== KeyEvent.KEYCODE_BACK) {
        moveTaskToBack(true);

       return true;
   }
   return super.onKeyDown(keyCode, event);
}

我認為首選的應該是Activity可以正常的完成,可以重建自己本身,例如如果需要的話從服務器讀取當前的狀態。但是有時候moveTaskToBack可以作為替代方案。
注意:在android2.0的介紹中Dave介紹了一個新的 onBackPressed 方法,和關於如何運用Back按鈕的一些推薦。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved