5

我正在运行一项服务以在我的应用程序中每 1 小时获取一次通知。

该服务绝对每 1 小时运行一次;我使用 Logcat 检查了它。

但是由于我是在onResume()MainActivity 中启动这个服务,所以我想检查这个服务是否已经在运行,并且只有在它没有运行时才启动它。

我使用了这段代码:

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

但我总是的。

所以我检查了输出service.service.getClassName()给出的内容。我的服务不在列表中。

是因为我的应用程序未知吗?或者是其他东西?

4

2 回答 2

0
private boolean isMyServiceRunning(Context mContext) {
    ActivityManager manager = (ActivityManager) mContext
            .getSystemService(Context.ACTIVITY_SERVICE);
    for (RunningServiceInfo service : manager
            .getRunningServices(Integer.MAX_VALUE)) {
        if (**HERE_YOUR_SERVICE'S_CLASS_NAME**.class.getName().equals(
                service.service.getClassName())) {
            return true;
        }
    }
    return false;
}

// i have background GPS service and i have successfully checked that my GPS service is either running or not.

// Happy coding...

于 2014-04-03T05:11:59.573 回答
0

我知道它有点晚了,但这个答案可能会帮助其他正在寻找相同的人。

您是否使用 开始了您的服务context.startService()
确保清单文件包含以下内容:

<service android:name="com.android.MyApp.MyServices.NotificationsService" />
于 2014-02-19T14:17:35.107 回答