我如何知道我的服务是否已启动

发布于 2024-10-19 01:50:18 字数 202 浏览 4 评论 0原文

在我的代码中,我有条件地启动我的服务,如下所示:

Intent intent = new Intent(context, MyService.class);
context.startService(intent);

你能告诉我是否可以找出我之前是否启动过相同的服务,这样我就不会启动我的服务两次?

谢谢。

In my code, I start my service conditionally like this:

Intent intent = new Intent(context, MyService.class);
context.startService(intent);

Can u please tell me if it is possible to find out if I have started the SAME Service before so that I don't start my service TWICE?

Thank you.

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

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

发布评论

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

评论(2

_蜘蛛 2024-10-26 01:50:18

如果一个服务已经在运行,它就不会被启动两次,事实上,即使你多次调用 startService(),你也只需要一次 stopService() 来停止它。

请参阅此处此处

a service won't be started two times if it's already running, in fact even if you call multiple times startService() you need only one stopService() to stop it.

see here and here.

洛阳烟雨空心柳 2024-10-26 01:50:18

检查这个:

private boolean isMyServiceRunning() {
ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
    if ("com.example.MyService".equals(service.service.getClassName())) {
        return true;
    }
}
return false;}

@bigstones:我不知道怎么做,但我有一个服务,它可以根据需要创建多少次(也许是因为我在其中创建了各种可运行对象)。

Check this:

private boolean isMyServiceRunning() {
ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
    if ("com.example.MyService".equals(service.service.getClassName())) {
        return true;
    }
}
return false;}

@bigstones: I don't know how, but I have a service that it can be created how many times as you like (maybe because I create inside it various runnable objects).

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