これらの解決策が正しいかどうかはわかりません。しかし、あなたは間違いなくそれを試すことができます.
A. Binding
およびUnbinding
サービスonPause()
_onResume()
Acitivity
unBind
アクティビティでService する必要がありますが、 をonPause()
呼び出さなかった場合unbind ()
、メモリ リークが発生すると思います。
Activity
reBind
アクティビティのサービスを提供する必要がonResume()
あります。しかし、これらのバインド解除により、NullPointerException
B. _ Sending BroadCastReceiver
あなたにそのようなものを構築するかもしれません。
必要に応じてブロードキャストを登録および登録解除する
Activity-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
}
}
C. _Sleep or Suspend Thread which is created at Service
Service 内の Media も、Service 用に作成したスレッドで処理されます。そのため、Activity の onPause() でその Thread を一時停止またはスリープ モードにし、Activity の onResume() でその Thread を再開すると役立つ場合があります。
スレッドメソッド -onSuspend()、onStart()、onResume()、onSleep()