我正在开发一个项目,如果该服务正在运行,则需要一个活动来连接到本地服务,如果它没有运行则启动它。 这种方法的适用标志是什么。
答案 0 :(得分:6)
这可以通过将最后一个参数中的0
传递给#bindService(Intent, ServiceConnection, int)
来完成。
E.g。
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);
#bindService(..)
来电将返回true
,但服务将不实际启动,您的服务连接将不会触发直到某人实际启动服务,例如使用#startService(Intent)
。至少这是它在ICS和Gingerbread上的工作原理。