2012-04-09 2 views
0

이것은 안드로이드 서비스로 실험 한 첫 번째 시간이므로 조금 잃어 버렸습니다. 나는 백그라운드에서 서비스가 항상 실행되도록 요구하는 응용 프로그램을 개발 중입니다. 이 서비스는 주 활동의 onclick 이벤트에서 초기화됩니다. 서비스를 시작하려면 다음 코드를 사용하십시오.안드로이드 서비스 종료

Intent Test = new Intent(this, testService.class); 
startService(Test); 

서비스에서 나는 기본적으로 두 가지가 있습니다. 메소드 onCreate에서 타이머를 초기화하고 30 분마다 새 스레드를 열고 서버에 새로운 데이터가 있는지 확인합니다. onStart 메소드에있는 동안 Receiver를 등록합니다.

서비스가 종료 된 후 가비지 수집기가 서비스를 제거 할 가능성이 있습니까? 저의 의구심은 서비스를 초기화하는 방식인데 여전히 활동 "main"프로세스에 바인딩되어 있다는 것입니다. 서비스가 계속 실행되도록하려면 어떻게해야합니까?

감사합니다.

답변

1

이 작업에는 타이머 대신 AlarmManager가 필요합니다.

+0

테스트 해 보면 효과가있는 것 같습니다. 도와 줘서 고마워. – CodePorter

1

OS는 리소스가 필요할 때 정상적인 우선 순위 또는 사용자 정의 백그라운드 서비스를 종료 할 수 있으므로 서비스를 항상 실행하려면 항상 백그라운드 서비스를 포 그라운드로 설정하거나 휴대 전화를 허용하지 않으려는 경우 잠자기 모드에서는 잠자기 모드를 사용할 수 있습니다.이 모드를 사용하면 항상 켜져있는 모드로 서비스를 설정할 수 있습니다 ..... 감사합니다.