1.startService 注册方式:
<serviceandroid:name="Class.Name">
<intent-filter>
<actionandroid:name="serviceName"/>
<categoryandroid:name="android.intent.category.DEFAULT"/>
</intent-filter>
</service>
启动方式:startService(new Intent(serviceName))
生命周期:service启动后,不绑定调用者。调用者消亡,service仍存在于后台;只有stopService(new Intent(serviceName)) 才可以杀死service
binderService 注册方式:
<serviceandroid:name="Clas.Name"></service>
启动方式:
private Class.Name _service;
ServiceConnection connect = new ServiceConnection() {
@Override
publicvoid onServiceDisconnected(ComponentName arg0) {
_service = null;
}
@Override
publicvoid onServiceConnected(ComponentName arg0, IBinder service) {
_service = ((Class.Name.LocalBinder)service).getService();
}
};
bindService(new Intent(this,"Class.Name", connect, Context.BIND_AUTO_CREATE);
生命周期:service启动后, 绑定调用者,调用者消亡,service也消亡,调用者也可以unbindService(connect)来终止service
2.startService与binderService的区别:startService的使用简单,适合service于调用者之间没有交互的场景。binderService操作复杂,但是比较灵活,可以获取service对象,对service进行管控操作。