2011-02-05 2 views
1

서비스가있는 응용 프로그램은 항상 실행중인 것으로 계산됩니다. 이는 제품의 일부이며 유료 앱인 경우 사용자가 기대합니다.서비스 유지 방법?

그러나 안드로이드 OS가 메모리 부족을 느끼거나 뭔가 잘못되어 서비스가 망가질 경우 서비스가 해킹 당하지 않을 방법이 없다.

서비스가 항상 실행되고 있는지 확인하는 가장 좋은 방법은 무엇입니까?

잠시 동안 "유용한"서비스를 시작하고 실행중인 경우에는 무시되는 두 번째 서비스를 만드는 것이 현명한 방법입니까?

+2

이 작업을 수행하지 마십시오. 작업 킬러가 죽임을 당하면 사용자가 서비스를 중단해서는 안됩니다. 대신에 AlarmManager를 사용하십시오. – Falmarri

답변

3

솔직히 말해서, 이것이 모두 좋은 생각인지 잘 모르겠습니다.

메모리가 충분하면 실행을 고집하는 다른 앱보다 공정하지 못합니다. 또한 심각한 메모리 부족 상황에서만 서비스가 시작됩니다.

당신이 사신 서비스를 쓰는 경우, 이것 역시 쫓겨날 수 있습니다.

그리고 "유료 앱이라면 사용자가 기대합니다." - 사용자는 앱이 잘 작동 할 것으로 기대합니다.

+1

+1 "사용자가 앱을 멋지게 재생할 것으로 기대합니다" – Falmarri

1

서비스가 '중요'인 경우 startForeground을 사용하면 전경에서 활동만큼 우선 순위가 높은 서비스를 제공 할 수 있습니다.

+0

AlarmManager 및 IntentService를 사용하여 코드를 다시 작성했지만 앱이 실행될 때마다 알람이 등록 될 때마다 이미 실행중인 자체 인스턴스로 이동하고 죽는다. 알람은 매시간 실행을 멈추므로 어쨌든 요점은 무엇입니까? – kidalex