如果存在,则绑定到服务

时间:2012-02-17 12:44:37

标签: android android-intent android-service android-activity

我正在开发一个项目,如果该服务正在运行,则需要一个活动来连接到本地服务,如果它没有运行则启动它。 这种方法的适用标志是什么。

1 个答案:

答案 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上的工作原理。