java - Force close while trying to release WakeLock? -


i have button when click it, turns on wakelock, , works fine! when click again suppose turn wakelock off, instead crashes app! appreciates, , know not because i'm changing images, because part works fine! :) heres code:

powermanager.wakelock wl; //this before oncreate int stayawake = 0; //this before oncreate     ((button) findviewbyid(r.id.sleeplock)).setonclicklistener(new view.onclicklistener() {      @override     public void onclick(view v) {     powermanager pm = (powermanager) getsystemservice (context.power_service);      wl = pm.newwakelock (powermanager.full_wake_lock, "my tag");          if (stayawake == 0) {         ((button) findviewbyid(r.id.sleeplock)).setbackgroundresource(r.drawable.awake);         stayawake = 1;         wl.acquire();         }else {             ((button) findviewbyid(r.id.sleeplock)).setbackgroundresource(r.drawable.sleep);             stayawake = 0;             wl.release();         }          // todo auto-generated method stub      } }); 

logcat:

06-06 00:44:25.206: w/dalvikvm(3855): threadid=1: thread exiting uncaught exception (group=0x40a031f8) 06-06 00:44:25.230: e/androidruntime(3855): fatal exception: main 06-06 00:44:25.230: e/androidruntime(3855): java.lang.runtimeexception: wakelock under-locked tag 06-06 00:44:25.230: e/androidruntime(3855):     @ android.os.powermanager$wakelock.release(powermanager.java:325) 06-06 00:44:25.230: e/androidruntime(3855):     @ android.os.powermanager$wakelock.release(powermanager.java:300) 06-06 00:44:25.230: e/androidruntime(3855):     @ com.something.something.savedgame$5.onclick(savedgame.java:259) 06-06 00:44:25.230: e/androidruntime(3855):     @ android.view.view.performclick(view.java:3511) 06-06 00:44:25.230: e/androidruntime(3855):     @ android.view.view$performclick.run(view.java:14105) 06-06 00:44:25.230: e/androidruntime(3855):     @ android.os.handler.handlecallback(handler.java:605) 06-06 00:44:25.230: e/androidruntime(3855):     @ android.os.handler.dispatchmessage(handler.java:92) 06-06 00:44:25.230: e/androidruntime(3855):     @ android.os.looper.loop(looper.java:137) 06-06 00:44:25.230: e/androidruntime(3855):     @ android.app.activitythread.main(activitythread.java:4424) 06-06 00:44:25.230: e/androidruntime(3855):     @ java.lang.reflect.method.invokenative(native method) 06-06 00:44:25.230: e/androidruntime(3855):     @ java.lang.reflect.method.invoke(method.java:511) 06-06 00:44:25.230: e/androidruntime(3855):     @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:787) 06-06 00:44:25.230: e/androidruntime(3855):     @ com.android.internal.os.zygoteinit.main(zygoteinit.java:554) 06-06 00:44:25.230: e/androidruntime(3855):     @ dalvik.system.nativestart.main(native method) 

while releasing lock button not have reference again reinitialize button , not set clicklistener

change code

button btn=(button) findviewbyid(r.id.sleeplock); powermanager.wakelock wl; //this before oncreate int stayawake = 0; //this before oncreate  btn.setonclicklistener(new view.onclicklistener() {      @override     public void onclick(view v) {         powermanager pm = (powermanager) getsystemservice (context.power_service);          wl = pm.newwakelock (powermanager.full_wake_lock, "my tag");          if (stayawake == 0) {             btn.setbackgroundresource(r.drawable.awake);             stayawake = 1;             wl.acquire();         } else {             btn.setbackgroundresource(r.drawable.sleep);             stayawake = 0;             wl.release();         }     } }); 

now code work fine


Comments

Popular posts from this blog

jquery - Invalid Assignment Left-Hand Side -

java - Play! framework 2.0: How to display multiple image? -

gmail - Is there any documentation for read-only access to the Google Contacts API? -