Mój android app dostał raport zderzeniowych jak poniżej. (Bardzo rzadko)blokada wybudzenia pod zablokowana GCM_LIB
java.lang.RuntimeException: WakeLock under-locked GCM_LIB
at android.os.PowerManager$WakeLock.release(PowerManager.java:325)
at android.os.PowerManager$WakeLock.release(PowerManager.java:300)
at com.google.android.gcm.GCMBaseIntentService.onHandleIntent(GCMBaseIntentService.java:252)
Jak java.lang.RuntimeException: WakeLock under-locked C2DM_LIB, mógłbym spróbować ~ catch lub korzystając isHeld()
ale nie jestem na pewno jest to najlepsze rozwiązanie i chcę wiedzieć, dlaczego tak się dzieje.
Niektórzy przypuszczają, że BroadcastReceiver i usługa w różnych procesach jak http://groups.google.com/group/cw-android/browse_thread/thread/9716bc101ce72fb4.
Ale czy to możliwe? Nigdy nie używałem androida: proces w manifeście, więc BroadcastReceiver i Service powinny być w tym samym (głównym) procesie, czyż nie?
Czy używasz metody nabywania (timeout) do nabycia wakelock? – edoardotognoni
Jest to duplikat: http://stackoverflow.com/a/12142013/450148 –