2009-12-03 30 views
0

可能重複:
Android: Detect when another Activity is launched (or your activity loses focus)Android:我如何知道Activity.onStop()是否因爲用戶要回家而被調用?

我需要能夠告訴我們,如果Activity.onStop()被調用,因爲我的應用程序移動到一個新的活動,或者是因爲關閉用戶按下「Home」鍵或點擊活動堆棧底部的後退按鈕。

原因是因爲我需要知道什麼時候切斷正在播放的應用程序(遊戲)中播放的音樂。沒有什麼比打回家和在背景中播放音樂更令人討厭的了。

但是,Activity.OnStop()會針對每個活動更改調用,並且我不想在應用程序中的多個活動之間移動時暫停音樂。我無法找到區分回家和參加內部活動的方式。

我可能會陷入錯誤的事件嗎?

有什麼建議嗎?

回答

0

難道你不在另一個線程中提出同樣的問題嗎?看到我的答案在那裏,你可以使用該庫或複製該方法是用於你自己的代碼,它是根據AC2許可的。

+9

這個答案是無用的人後來誰不知道你的意思是什麼線程... – fenomas 2011-12-13 05:20:54

+0

我相信這是鏈接:http://stackoverflow.com/questions/1843911/android-detect-when-another-活動的被推出或 - 您 - 活性 - 失去焦點 – Brigham 2011-12-16 20:17:11

2

沒有onClose()。有onPause(),onStop()onDestroy(),但沒有onClose()。您可以撥打isFinishing()以查看該活動是否因後退按鈕(或撥打finish())而暫停。 isFinishing()將返回false,如果活動將繼續進行(例如,用戶按下HOME,用戶接聽電話)。

+0

Doh,我的意思是onStop,我只是寫得很晚。 – FlySwat 2009-12-03 15:56:27

+0

當然你應該添加這個作爲評論commonsware.com。這不是一個答案! – 2009-12-04 12:29:31

+2

不,使用isFinishing()來確定活動是否完成是一個答案。 – CommonsWare 2009-12-04 14:06:31

0

我想你可以添加一個View.OnKeyListener,它會捕獲主鍵按public boolean onKey(View v, int keyCode, KeyEvent event){},關閉音樂並返回false告訴事件沒有被消耗。

+0

KeyListeners不會冒泡系統密鑰。 – FlySwat 2009-12-04 01:07:03

相關問題