2012-09-17 75 views
0

我有2個活動,一個主要啓動一個mediaplayer流,一個按鈕導致啓動活動#2,然後完成()當前Activity活動#1的任務完成這一點,音樂播放器在這一點上沒有問題。活動#2打開後,媒體播放器工作約5秒鐘然後停止,在活動#2中,我只有一個按鈕退出,並且在Handler的幫助下運行一個AsyncTask。Media Player在新Activity上停留5秒後停止

+0

可能與您的問題無關,但爲什麼在打開活動2之前打完活動1?您應該打開活動2,並讓用戶使用設備上的後退按鈕關閉活動2,這會將活動1帶回到前面。手動完成和關閉活動會中斷應用程序的預期導航流程。 – jlindenbaum

+3

發佈代碼,以便我們可以看到它。 –

+1

@jlindenbaum:在一個Activity上調用'finish()'是完全可以接受的,只要你這樣做是出於正確的原因,也就是說,如果你不想再次返回到'Activity'。 – Squonk

回答

5

我相信你是來自活動1的MediaPlayer正從內存中抹去,因爲你打電話給finish()MediaPlayer實例是第一個Activity的一部分。解決此問題的唯一方法是在活動2中新建一個MediaPlayer或創建一個Service,以處理後臺中的所有媒體。如果你這樣做,第二種方法是,一個MediaPlayer實例將繼續在所有活動中播放,並且只需要向它發送命令。

+0

瞭解,這似乎符合我的情況。你有沒有提出這兩種方法的例子?謝謝。 – kabuto178

+1

這與你現在正在做的事情沒有什麼不同。第一種方法可能要求你在'Intent'中發送一個'Bundle'來告訴Activity哪個聲音正在播放,音量等。第二種方法類似於這個:http://marakana.com/forums/android/例子/ 60.html – DeeV

+0

再次感謝,這幫助我贏得了我的征服!大聲笑,批准的答案,因爲它有助於我的情況 – kabuto178