2013-05-16 7 views
1

나는 다른 일을하는 3 가지 서비스가 있고 모두 wakelocks가 필요한 상황이 있습니다.wakelock은 정적인가요? 그렇다면 한 응용 프로그램에서 여러 서비스/wakelocks를 어떻게 관리합니까?

실행이 끝나면 wakelocks를 해제하고 싶지만, 잠자기를 해제 한 서비스가 다른 서비스의 동작을 손상시킬 수 있습니다. 그래서, 내가 상상하고있어 시나리오는 다음과 같습니다

서비스 A 횡령 잠금 깨어

서비스 B를 잡고 잠금 일어나 일을 시작하고 뭔가를

서비스 A 마감을하고 시작하고 출시 잠 깨어

이 시점에서 B 서비스는 어떻게됩니까?

그래서, 내 기본 질문은 다음과 같습니다

A)에 대해 걱정이 뭔가 또는 안드로이드가 자동으로 장면 뒤에 날 위해 관리 않습니다 (내 가정은하지) 않습니다입니까?

b) 서비스가 완료되지 않은 경우 절전 모드 잠금이 계속 유지되는지 또는 서로를 훼손하지 않는 별도의 절전 모드를 유지하는 가장 좋은 방법은 무엇입니까?

답변

1

는 서비스 중 하나가 WakeLock

전화 setReferenceCounted(true)을 수행하지 않을 경우 중 하나 웨이크 잠금이 지속 있는지 확인하는 가장 좋은 방법은 무엇입니까. 이미 기본적으로 설정되어 있지만 원하는 경우 다시 호출 할 수 있습니다.

+0

아 ...이 전체 메커니즘의 참조 카운팅 부분은 불분명하고 분명히 중복 부울 세터를 명시 적으로 호출하지 않고도 내 목적을 완벽하게 처리 할 것입니다. 언제나처럼 고마워. –

+0

@ Dr.Dredel : 예. 일반적으로 참조 카운트 된 'WakeLocks'가 필요합니다. 이것이 기본값에 의한 것입니다. 'WakefulIntentService'에서 나는 * 정말로 정말로 * 참조 카운트 된'WakeLock'을 원한다. 그래서 나는 구글이 기본값을 변경하는 경우를 대비해 어쨌든 setter를 호출한다. 예상치 못한 시나리오로는 레퍼런스 카운트 된 'WakeLock'을 원하지 않을 수도 있지만, 대머리의 머리에서 벗어난 예를 생각할 수는 없습니다. – CommonsWare