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;
}

しかし、私は常に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;
}

// バックグラウンド GPS サービスがあり、GPS サービスが実行されているかどうかを正常に確認できました。

// 幸せなコーディング...

于 2014-04-03T05:11:59.573 に答える