CWAC Advanced Android 책의 AlarmManager 섹션을 정말 좋아합니다. 잠자기 후 깨우기 기능이 없어서 앱이 죽는 것이 걱정됩니다. 여기 내가 걱정하는 것이있다. 내 걱정은 이성적입니까?doWakefulWork가 다른 서비스를 시작하면 어떻게 될까요?
아래 코드를 참조하십시오. doWakefulWork가 다른 서비스를 시작해야한다면? 이 경우, 다른 서비스는 WakeLock을 실행 상태로 유지해야하지만 서비스 시작과 wakelock이 해제 될 수있는 onHandleIntent 사이의 시간 차이가 있습니다!
@Override
final protected void onHandleIntent(Intent intent) {
try {
doWakefulWork(intent)
}
finally {
getLock(this).release();
}
}
내가는 대답은 : 다른 서비스도 WakefulIntentService 경우가 아니라면 동일한 스레드에서 실행해야합니다 doWakefulWork, 그것은 다른 스레드 또는 서비스를 시작할 수 없습니다.
맞습니까?
왜 처음에는 두 가지 서비스가 있습니까? – CommonsWare
한 가지 경우에 doWakefulWork는 활동을 시작합니다. 활동을 시작하면 잠에서 깨우기 잠금 장치가 필요합니까? 다른 경우 기존 코드가 있습니다. 네가 제안한대로 개조 할 수있어. – gregm
활동을 시작하면 사용자가 먼저 활동과 상호 작용하지 않으면 장치가 잠든 것입니다. 그 당시 사용자가 기기 근처에 있는지 전혀 알지 못하기 때문에 사용자를 기다리면서 기기를 깨우지 않으려 고 강력히 권장합니다. 나는 두 가지 서비스를 통합하는 것이 장거리를위한 당신의 삶을 단순화 할 수 있다고 생각하지만 그것은 단지 추측 일뿐입니다. – CommonsWare