1 つの問題があります。私の主なアクティビティがサービスを開始し、その後終了します。アプリケーションが次回起動するときに、アプリケーションはこのサービスへの参照を取得して停止する必要があります。しかし、実行中のサービスへの参照を取得する方法がわかりません。助けてください。ありがとうございました。
質問する
5411 次
2 に答える
10
この回答は、@DawidSajdak による回答に基づいています。彼のコードはおおむね正しいですが、return
ステートメントを入れ替えたため、意図した結果とは反対の結果が得られました。正しいコードは次のとおりです。
private boolean isMyServiceRunning() {
ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if ("your.service.classname".equals(service.service.getClassName())) {
return true; // Package name matches, our service is running
}
}
return false; // No matching package name found => Our service is not running
}
if(isMyServiceRunning()) {
stopService(new Intent(ServiceTest.this,MailService.class));
}
于 2015-09-26T10:46:52.487 に答える
-1
private boolean isMyServiceRunning() {
ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if ("your.service.classname".equals(service.service.getClassName())) {
return false;
}
}
return true;
}
if(isMyServiceRunning()) {
stopService(new Intent(ServiceTest.this,MailService.class));
}
于 2012-05-07T12:42:32.357 に答える