与2项活动共享音乐服务

时间:2014-06-07 18:19:59

标签: android media-player android-service

我有一个片段[1],可以播放带有服务的音乐,并显示歌曲的持续时间,歌曲等的进度。现在,当我点击当前播放的歌曲的albumart时,我需要用音乐显示另一个屏幕[2]玩同样的服务和进步。为了传递从[1]到[2]的值,我使用的是Intent。但是[1]和[2]都没有同步。我怎么能让[1]和[2]同时显示和播放同一首歌,持续时间我应该在[1]和[2]中做出哪些改变。我在[1]和[2]中都称服务类。 编辑我正在[1]和[2]中创建服务。这是正确的方法吗?

[1]中的代码:

imgAlbumArt.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent testIntent = new Intent(getActivity(),PlayScreen.class);
            testIntent.putExtra("currentDur",currentDuration);
            testIntent.putExtra("totalDur",totalDuration);
            testIntent.putExtra("progress",progress);


            startActivity(testIntent);

        }
    });

修改 尝试使用广播接收器。

 public class MusicIntentReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {

    if(intent.getAction().equals("test"))
    {
         Bundle extra = intent.getExtras(); 
         String title = extra.getString("title");
         Log.d("RECEIVER","boradcast receieved wt title"+title); 
    }

现在如何在[2] ???

中使用这个标题值

1 个答案:

答案 0 :(得分:0)

您不需要在片段之间共享数据,您只需要一个包含所有播放器信息的播放器服务,并将此信息发布给您想要的任何用户,例如片段或活动。

要发布您可以使用BroadcastReceiver的信息  或者如果你想学习更强大的东西,我建议你使用Observable类的rxjava。