我不知道這些解決方案是否正確。但你絕對可以試試看。
A.Binding
和Unbinding
服務在onPause()
和onResume()
Acitivity
應該unBind
到服務在活動的onPause()
,但如果你沒有叫unbind()
,我想你會得到一個內存泄漏。
Activity
應該reBind
服務在onResume()
活動。但這些綁定解除綁定可能會導致您NullPointerException
乙。 Sending BroadCastReceiver
可能會建立你這樣的事情。
註冊和註銷廣播自己的需要
裏面你的活動 - 在onPause()
String PAUSE_MUSIC="PAUSE_MUSIC_INSIDE_SERVICE";
Intent intent = new Intent(PAUSE_MUSIC_INSIDE_SERVICE);
sendBroadcast(intent);
裏面你的服務
BroadCastReceiver receiver=new PauseMusicReceiver();
IntentFilter filter = new IntentFilter(Activity.PAUSE_MUSIC);
getApplicationContext().registerReceiver(receiver, filter);
class PauseMusicReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
//Pause your MediaPlayer
}
}
Ç。 Sleep or Suspend Thread which is created at Service
服務內部的媒體也處理您爲服務創建的線程。因此,可能會暫停或將該線程置於睡眠模式的Activity的onPause(),並在Activity的onResume()再次恢復該線程可以提供幫助。
Thread方法-onSuspend(),在onStart(),的onResume(),onSleep()