请帮帮我。我有一个活动类和服务类。活动包含很多按钮,所以当用户点击它显示对应的按钮xml,它必须播放相应的声音。所以我通过putExtra传递参数到服务,但我无法在服务类中获取它。我在onStartCommand()中获取它,但它不创建或播放它(所以我不知道)。如何解决这个问题?谢谢。这是我的代码。 Activity.java
public void onClick(View arg0) {
if(arg0.getId()==R.id.Button01){
id=arg0.getId();
service = new Intent(this, MyService.class);
service.putExtra("ButtonA", id);
startService(service);
setContentView(R.layout.button_a);
}
.... Service.java
public void onCreate() {}
public int onStartCommand(Intent intent,int flags,int startId){
Toast.makeText(this, "My Service Started", Toast.LENGTH_LONG).show();
onHandleCommand(intent);
return START_STICKY;
}
private void onHandleCommand(Intent intent) {
if(button.equals(intent.getStringExtra("ButtonA"))){
player = MediaPlayer.create(this, R.raw.alma);
player.setLooping(false);
} else if(button.equals(intent.getStringExtra("ButtonAE"))){
player = MediaPlayer.create(this, R.raw.azhe);
player.setLooping(false);
}
}
答案 0 :(得分:0)
抱歉,我错过了这一点,onHandleCommand
是您自己的方法,您无法覆盖它。
看起来你的问题就在这里:
if(button.equals(intent.getStringExtra("ButtonA")))
你在这里作为额外的意图传递给你的是什么? 你想要比较什么?一个按钮和一个字符串?