서비스 A에 대해 서비스 B에 대해 통보해야 할 필요가 있습니다. 서비스 ~ 서비스 A을 this question에 명시된대로 서비스를 시작하지 않아야하는 다음 방법을 호출하여 바인딩합니다.실행중인 서비스와 바운드 서비스를 구별하는 방법은 무엇입니까?
serviceA.bindService(new Intent(serviceA, ServiceB.class), conn, 0);
그러나 서비스가 실행 중인지 확인하고 싶을 때 다음 방법을 사용하면 서비스가 방금 바인딩되어 있어도 true를 반환합니다.
public static boolean isServiceRunning(Context context) {
ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if (ServiceB.class.getName().equals(service.service.getClassName())) {
return true;
}
}
return false;
}
왜 서비스에 대한 진정한 isServiceRunning
복귀 단지 바운드 (내가 그 서비스가 설정에서 응용 프로그램을 실행에보고 실행되고 있지 확인) 실행되지 않습니다?
'ServiceB # onCreate'가 호출되었는지 확인할 수 있습니까? – kiruwka
'ServiceB # onCreate'가 호출되지 않았습니다. – jellyfication
잘,'ServiceB'보다는 당신이 기대하는 만들지 않습니다. 나는'isServiceRunning' 메소드 코드가 그것을 잘못 체크하고있는 것 같아요. – kiruwka