4

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

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

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

谢谢你。

4

2 回答 2

8

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

这里这里

于 2011-02-25T21:48:37.977 回答
5

检查这个:

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:我不知道怎么做,但是我有一项服务,可以根据需要创建多少次(可能是因为我在其中创建了各种可运行的对象)。

于 2012-06-07T16:30:48.507 回答