使用绑定服务的正常方式:
private ServiceConnection musicConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName name, IBinder service) {
MusicBinder binder = (MusicBinder)service;
//get service
musicSrv = binder.getService();
//pass list
musicBound = true;
}
@Override
public void onServiceDisconnected(ComponentName name) {
musicBound = false;
}
};
Intent playIntent = new Intent(this, MusicService.class);
bindService(playIntent, musicConnection, Context.BIND_AUTO_CREATE);
而不是这个,我们不能使用它:
MusicService music=new MusicService();
如果是,那么以两种不同方式获得的两个实例之间是否会有任何差异?
答案 0 :(得分:2)
绑定服务或启动服务将导致对目标服务的生命周期方法的相应调用。 如果此服务尚未运行,它将被实例化并启动(如果需要,为其创建一个进程);如果它正在运行,那么它仍然在运行。
新服务只是创建一个新对象,没有任何意义,系统对此一无所知。
就像活动一样,你不能新建一个活动,你应该开始一个活动,然后onCreate
将响应创建活动实例并调用它的{{1}}方法。