绑定到服务(如果存在)

发布于 2025-01-06 04:34:11 字数 72 浏览 0 评论 0原文

我正在开发一个项目,该项目需要一个活动来连接到本地服务(如果该服务正在运行)并在该服务未运行时启动它。 这种方法合适的标志是什么?

I'm working on a project that needs an activity to connect to a local service if that service is running and start it if it is not running.
What is the suitable flag for such approach.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

大姐,你呐 2025-01-13 04:34:11

例如,只需将最后一个参数中的 0 传递给 #bindService(Intent, ServiceConnection, int) 即可完成。

例如,

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 上是这样的。

This is simply accomplished by, for instance, passing 0 in the last parameter to #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);

The #bindService(..) call will return true but the service will not actually start and your service connection will not trigger until someone actually starts the service, e.g. using #startService(Intent). At least this is how it works on ICS and Gingerbread.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文