我有一个片段[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] ???
中使用这个标题值答案 0 :(得分:0)
您不需要在片段之间共享数据,您只需要一个包含所有播放器信息的播放器服务,并将此信息发布给您想要的任何用户,例如片段或活动。
要发布您可以使用BroadcastReceiver的信息 或者如果你想学习更强大的东西,我建议你使用Observable类的rxjava。