如果用戶點擊Home鍵,我可以暫停我的應用程序,因爲事件觸發。當用戶長時間按住Home時,如何暫停我的應用程序?
但是,如果用戶長按主頁,最近的應用程序啓動器彈出,我的應用程序繼續在它後面運行。
我想在這種情況下暫停我的應用程序。我能做什麼? (注意:我不想阻止長時間按住Home或改變它的行爲,我的應用程序只需知道它發生了,這是一個遊戲,所以我想暫停它。)
如果用戶點擊Home鍵,我可以暫停我的應用程序,因爲事件觸發。當用戶長時間按住Home時,如何暫停我的應用程序?
但是,如果用戶長按主頁,最近的應用程序啓動器彈出,我的應用程序繼續在它後面運行。
我想在這種情況下暫停我的應用程序。我能做什麼? (注意:我不想阻止長時間按住Home或改變它的行爲,我的應用程序只需知道它發生了,這是一個遊戲,所以我想暫停它。)
你可以在你的活動中重寫onKeyLongPress()方法,做你想做的事,然後調用super方法。
http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html
如果一切都失敗了,使用戶能夠手動暫停(通過按鈕或菜單)的能力。
這聽起來像你有一種情況,用戶會對你的遊戲持續不滿,長時間持續遊戲,但此時用戶已經將注意力從遊戲中移開了。如果我在時間敏感的遊戲當中,並想通過長按Home按鈕離開,我首先想到的是手動暫停遊戲。
只是思考,好運。
您也可以嘗試在activity中覆蓋onWindowFocusChanged。喜歡的東西:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
Log.d(TAG, "On windows focus changed. (" + hasFocus + ")");
if (!hasFocus) doStopGame();
}
但是,它仍然不是很清楚,我怎麼當你試圖要回你的應用程序從最近的應用對話框處理事件。上述處理函數在這種情況下不會被調用。但是,您仍然可以暫停遊戲並提供遊戲玩家),然後重新開始對話。
不幸的是,這個事件並不會因長時間按下Home鍵而觸發(儘管它對其他鍵有效:例如搜索)。 – teedyay 2010-10-11 09:51:17