KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
The pm and keepScreenOn variables are globally defined. I grab the PowerManager.WakeLock in my OnCreate method: pm = (PowerManager) getSystemService(Context.POWER_SERVICE); keepScreenOn = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_LOCK,"tpd"); in my onStart, onResume, and onRestart I grab the lock with if (keepScreenOn == null) { keepScreenOn = pm.newakeLock(PowerManager,SCREEN_BRIGHT_LOCK,"tpd"); } keepScreenOn.acquire(); in my onDestroy, onPause, and onStop I release the lock with: if (keepScreenOn != null) { keepScreenOn.release(); keepScreenOn = null } After my app exits I get a failure screen and adb complains that java.lang.Exception: WakeLock finalized while still held: tpd Tracing shows that I released the lock before exit. What have I missed? There is no way out of the app without crossing at least one of onPause , onStop , or onDestroy . I can see that the app called release() as often as it called acquire() so even though the wakelock is reference counted it should still have zero refs.
Tags (comma-separated)
Save Edits
Cancel