将putExtra intent中URL字符串数组的选定项从活动传递到服务



在我的媒体播放器应用程序中,我将从列表视图中向我的服务类传递选定的url,如下所示。

Resources res = getResources();
String[] links = res.getStringArray(R.array.links);
String url = links[position];
if (playing) {
Intent i = new Intent(MainActivity.this, MpService.class);
stopService(i);
}
playing = true;
Intent start = new Intent(MainActivity.this, MpService.class);
start.putExtra("media", url);
startService(start);

但在我的playpause toogle按钮上,我正在重新启动服务,我需要保留之前选择的相同url。这是嘟嘟声功能:

private void togglePlayPause() {
if (playing) {
playing = false;
nowplaying.setText("Offline");
mPlayerControl.setImageResource(R.drawable.ic_play_circle_filled);
Intent i = new Intent(MainActivity.this, MpService.class);
stopService(i);
} else if (!playing){
playing = true;
Intent i = new Intent(MainActivity.this, MpService.class);
i.putExtra("media",//here is what i'm not getting);
startService(i);
nowplaying.setText("Now Playing");
mPlayerControl.setImageResource(R.drawable.ic_pause_circle_filled);
}
}

请帮助如何实现这一点?这是我的第一个应用程序,这非常令人困惑。

在活动中:

Intent start = new Intent(MainActivity.this, MpService.class);
start.putExtra("media", url);
startService(start);

在役:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (intent != null && intent.getExtras() != null){
String mediaUrl = intent.getStringExtra("media", null);
}
}

对于传递字符串数组,请遵循以下步骤:活动中:

Intent intent = new Intent(this, ClassB);
String[] myStrings = new String[] {"test1", "test2"};
intent.putExtra("strings", myStrings);
startActivity(intent);

在役:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (intent != null && intent.getStringArrayExtra() != null){
String[] myStrings = intent.getStringArrayExtra("strings");    }
}

最新更新