我怎样才能知道我的服务是否已经开始

时间:2011-02-25 21:33:51

标签: android android-service

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

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

请您告诉我是否可以查看我之前是否启动过相同服务,以免我开始服务TWICE?

谢谢。

2 个答案:

答案 0 :(得分:8)

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

请参阅herehere

答案 1 :(得分: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:我不知道怎么做,但我有一个服务,可以根据你的喜好创建它多少次(也许是因为我在里面创建了各种可运行的对象)。