내 앱에 대한 전경 서비스가 있습니다. 내 앱이 전체 시간 동안 실행되고 중지되지 않아야합니다. 내가 몇 번 테스트하는 동안 3-4 일 후에 안드로이드는 그것을 멈추기로 결정하고 다시는 다시 시작하지 않으며, 내 액티비티에서는 서비스가 실행 중인지 확인하고 시작하는 경우 서비스를 확인합니다 그것. 비록 서비스가 시작되지 않고, 디버깅을 할 수 없습니다. 이것이 내 수표입니다. 뭔가 잘못 됐나요?Android에서 중지되는 포 그라운드 서비스가 나중에 다시 시작되지 않습니다.
if (!isMyServiceRunning(MyService.class)) {
startService(new Intent(this, MyService.class));
}
private boolean isMyServiceRunning(Class<?> serviceClass) {
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if (serviceClass.getName().equals(service.service.getClassName())) {
return true;
}
}
return false;
}
나는 활동의 onResume에서이 검사를()를 호출하고, 활동이 시작되면 내가 얻을 것이다, 서비스에 지속적으로 실행 스레드를 가지고 있기 때문에 난 그냥, 매번 그것을 실행할 수 없습니다 하나 이상의 , 중 하나가 또는 을 실행하면 바로 활동을 시작할 때마다이 문제를 방지 할 수있는 서비스를 시작하면 서비스를 확인하기 위해 더 신뢰할 수있는 방법이 있습니다 인스턴스한다면 ... 여기
을 여러 번 시작 내가 원하는 것입니다 그리고 그것의 내부 스레드는 항상 단지 1 인스턴스 (나는 이미 정적이라고 선언했다)를 가져야한다.
알아야 할 사항? –
서비스를 시작하는 코드를 붙여 넣을 수 있습니까? –
당신은 onStartCommand 메서드를 의미합니까? –