暂停媒体播放器活动

时间:2013-01-05 13:43:36

标签: android

我的偏好活动:启用/禁用声音并启用/禁用声音背景。阅读共享我开始启动媒体播放器的服务。当活动进入onPause()状态时,我需要暂停媒体播放器。

的活动:

// reading sharedpreferences, if true:
    startService(new Intent(this, UnUsedService.class));

服务:

    private PendingIntent pendingIntent;
    public void onStart(Intent intent, int startId) {
    super.onStart(intent, startId);
    player.start();

};

1 个答案:

答案 0 :(得分:1)

我不知道这些解决方案是否正确。但你绝对可以尝试一下。

A。 BindingUnbinding服务于onPause()onResume()

AcitivityunBindonPause()活动时提供服务,但如果您没有拨打unbind (),我认为您会收到内存泄漏。

ActivityreBindonResume()活动时提供服务。但是这些绑定解除绑定可能会导致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
   }
}

<强> C 即可。 Sleep or Suspend Thread which is created at Service

服务中的媒体也处理您为服务创建的主题。因此,可以在Activity的onPause()中暂停或将该线程置于睡眠模式,并在Activity的onResume()处再次恢复该线程。

线程方法-onSuspend(),onStart(),onResume(),onSleep()