Java 如何引用resId';从主要活动到服务
我必须将我的MediaPlayer移出MainActivity并进入服务 我的代码当前在MainActivity中托管了所有按钮,但是当按下按钮时,会为其分配一个ID(resId),以便我可以使用常规MediaPlayer代码播放任何按下的按钮 例如:Java 如何引用resId';从主要活动到服务,java,android,service,media-player,Java,Android,Service,Media Player,我必须将我的MediaPlayer移出MainActivity并进入服务 我的代码当前在MainActivity中托管了所有按钮,但是当按下按钮时,会为其分配一个ID(resId),以便我可以使用常规MediaPlayer代码播放任何按下的按钮 例如: public void onClick(View v) { int resId; switch (v.getId()) { case R.id.button_1: resId = R.raw.birdson
public void onClick(View v) {
int resId;
switch (v.getId()) {
case R.id.button_1:
resId = R.raw.birdsong;
break;
case R.id.button_2:
resId = R.raw.brown_noise;
break;
case R.id.button_3:
resId = R.raw.car_journey;
break;
case R.id.button_4:
resId = R.raw.crackling_fire;
break;
case R.id.button_5:
resId = R.raw.electrifying_thunderstorms;
break;
case R.id.button_6:
resId = R.raw.fan;
break;
case R.id.button_7:
resId = R.raw.jungle_river;
break;
case R.id.button_8:
resId = R.raw.pig_frogs;
break;
case R.id.button_9:
resId = R.raw.pink_noise;
break;
case R.id.button_10:
resId = R.raw.predawn;
break;
case R.id.button_11:
resId = R.raw.rain;
break;
case R.id.button_12:
resId = R.raw.shower;
break;
case R.id.button_13:
resId = R.raw.snoring;
break;
case R.id.button_14:
resId = R.raw.whale_song;
break;
case R.id.button_15:
resId = R.raw.white_noise;
break;
default:
resId = R.raw.birdsong;
break;
}
// Release any resources from previous MediaPlayer
if (mp != null) {
mp.release();
}
// Create a new MediaPlayer to play this sound
mp = MediaPlayer.create(this, resId);
mp.setLooping(true);
mp.start();
我如何才能将代码移动到服务,但仍有MainActivity上的按钮?服务将无法识别与按钮关联的resId,因为所有代码都将在MainActivity中,因此不会播放正确的声音。您可以编写一个ContentProvider,并向服务发送您自己的自定义名称/标识符,以便它使用提供的代码通过ContentProvider访问活动应用程序的资源名称请在此阅读: