我从这里开始服务
Intent intent=new Intent(getActivity(),MyService.class);
s=sn;
u=ur;
intent.putExtra("uri",u);
ServiceConnection serviceConnection=new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
MyService.LocalBinder binder = (MyService.LocalBinder) service;
myService=binder.getService();
}
@Override
public void onServiceDisconnected(ComponentName name) {
myService=null;
}
};
getActivity().startService(intent);
这是我的服务等级
public class MyService extends android.app.Service {
MediaPlayer mediaPlayer=new MediaPlayer();
String str;
private final IBinder binder = new LocalBinder();
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// str=intent.getStringExtra("uri");
Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
this.str=intent.getStringExtra("uri");
try {
mediaPlayer.setDataSource(str);
} catch (IOException e) {
e.printStackTrace();
}
if(!isplaying()){
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
startmusic();
}
});
}
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
}
public class LocalBinder extends Binder {
MyService getService() {
// Return this instance of LocalService so clients can call public methods.
return MyService.this;
}
}
@Override
public IBinder onBind(Intent intent) {
return binder;
}
public void startmusic(){
mediaPlayer.start();
}
public void stopmusic(){
mediaPlayer.stop();
}
public boolean isplaying(){
return mediaPlayer.isPlaying();
}
}
我收到这个错误
java.lang.RuntimeException:无法使用 Intent { cmp=com.example.firebasemp/.MyService(有额外的)} 启动服务 com.example.firebasemp.MyService@da4ba03:java.lang.IllegalStateException"
在这条线上 “mediaPlayer.setDataSource(str);”