的活动:
String id = "blabla";
Intent musicService = new Intent(this, MusicPlayerService.class);
musicService.putExtra("MUSIC_ID", id);
startService(musicService);
服务:
@Override
public int onStartCommand(Intent intent, int flags, int startId){
super.onStartCommand(intent, startId, startId);
Toast.makeText(getApplicationContext(), "Music Service Started", Toast.LENGTH_LONG).show();
Bundle extras = intent.getExtras();
String s = extras.getString("musicID");
Toast.makeText(getApplicationContext(), "service start" + s, Toast.LENGTH_LONG).show();
return START_STICKY;
}
活动从未显示过,活动中的意图/启动服务线被100%命中。
我做错了什么?
答案 0 :(得分:3)
您似乎错误输入了musicID
"MUSIC_ID"
你应该为这些做出常量变量:
public static final String MUSIC_ID_KEY = "MUSIC_ID";
这样你就可以减少错误。
答案 1 :(得分:0)
put
方法中的代码必须与get
方法中的代码匹配。尝试将getString
更改为以下内容:
String s = extras.getString("MUSIC_ID");
答案 2 :(得分:0)
试试这个,只需要在参数中显示的字符串:
public void displayToast(final String str) {
runOnUiThread(new Runnable () {
@Override
public void run() {
Toast.makeText(getApplicationContext(), str, Toast.LENGTH_LONG).show();
}
});
}
答案 3 :(得分:0)
他们是两件事。 MUSIC_ID< - > musicID。尝试使用
静态最终字符串KEY_x =“MUSIC_ID”;
你不会忘记你的代码。