如何从不同的活动启动不同的服务实例

发布于 2024-12-12 17:27:31 字数 462 浏览 1 评论 0原文

在我的 Android 应用程序中,我会从不同的活动启动我的服务的不同实例。 例如,AI 想要从活动中启动服务,而 BI 想要从活动中启动同一服务的另一个实例。

从不同的活动中,我使用这些代码行:

活动 A

svc = new Intent(AActivity.this, Service.class);
svc.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startService(svc);
        `

活动 B

svc = new Intent(BActivity.this, Service.class);
svc.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startService(svc);

问题是只创建了一项服务。 有解决办法吗? 提前致谢

In my Android application I would launch differents instance of my service from different activity.
For example from activity A I want launch the service and from activity B I want launch another instance of the same service.

From the differents activity I'm using these code lines:

Activity A

svc = new Intent(AActivity.this, Service.class);
svc.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startService(svc);
        `

Activity B

svc = new Intent(BActivity.this, Service.class);
svc.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startService(svc);

The problem is thath only one service is created.
There is a solution?
Thanks in advance

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

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

发布评论

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

评论(2

我做我的改变 2024-12-19 17:27:31

例如,从活动 AI 想要启动服务,从活动 BI 想要启动同一服务的另一个实例。

这是不可能的,抱歉。

For example from activity A I want launch the service and from activity B I want launch another instance of the same service.

This is not possible, sorry.

夜空下最亮的亮点 2024-12-19 17:27:31

我也在考虑这样做,但经过一番挖掘后,我得出了同样的结论。同一服务的多个实例不可能同时运行。

这是来自 android 开发论坛的引用:

服务是单例的。您不能将 stopService() 与 bindService() 一起使用。
只要有一个或多个客户端,或者它是,一项服务就会保持实例化状态
明确地在开始>状态。

黛安·哈克伯恩,
Android框架工程师

抱歉这个坏消息。

干杯

I was looking into doing this as well, but after doing a bunch of digging, I came to the same conclusion. It isn't possible to have multiple instances of the same service running.

This is a quote from the android dev forums:

Services are singletons. You do not use stopService() with bindService().
A service remains instantiated as long as there are one or more clients to it, OR it is
explicitly in the start > state.

Dianne Hackborn,
Android framework engineer

Sorry for the bad news.

Cheers

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