我正在开发一个项目,需要一个活动来连接到本地服务,如果该服务正在运行,则启动它,如果没有运行,则启动它。 对于这种方法,什么是合适的标志?
我正在开发一个项目,需要一个活动来连接到本地服务,如果该服务正在运行,则启动它,如果没有运行,则启动它。 对于这种方法,什么是合适的标志?
#bindService(Intent, ServiceConnection, int)
时将最后一个参数传递为0
来简单实现。
例如:
bindService(new Intent(this, MrMeService.class), new ServiceConnection(){
public void onServiceDisconnected(ComponentName name) {
System.out.println("Service disconnected");
}
public void onServiceConnected(ComponentName name, IBinder service) {
System.out.println("Service connected");
}
}, 0);
< p > #bindService(..)
调用将返回true
,但服务实际上不会启动,并且您的服务连接将不会触发直到有人实际启动服务,例如使用#startService(Intent)
。至少在ICS和Gingerbread上是这样工作的。
...如果不存在就不创建它
,现在是...如果未运行则启动它
。回答地址原始问题,对于编辑后的问题,适当的答案应该是使用BIND_AUTO_CREATE
标志。 - snachmsm