1
버튼을 클릭하면 WakeLock이 켜지고 작동합니다. 하지만 다시 클릭하면 WakeLock을 사용 중지한다고 가정하지만 대신 응용 프로그램이 중지됩니다! 어떤 도움도 감사 하겠고 이미지가 바뀌기 때문에 그 부분이 잘 작동하기 때문에 그 부분을 알지 못합니다! :) Heres는 내 코드 :WakeLock을 해제하는 동안 강제 종료 하시겠습니까?
PowerManager.WakeLock wl; //This is before my oncreate
int stayAwake = 0; //This is before my 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
}
});
로그 캣 :
06-06 00:44:25.206: W/dalvikvm(3855): threadid=1: thread exiting with 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 My Tag
06-06 00:44:25.230: E/AndroidRuntime(3855): at android.os.PowerManager$WakeLock.release(PowerManager.java:325)
06-06 00:44:25.230: E/AndroidRuntime(3855): at android.os.PowerManager$WakeLock.release(PowerManager.java:300)
06-06 00:44:25.230: E/AndroidRuntime(3855): at com.something.something.SavedGame$5.onClick(SavedGame.java:259)
06-06 00:44:25.230: E/AndroidRuntime(3855): at android.view.View.performClick(View.java:3511)
06-06 00:44:25.230: E/AndroidRuntime(3855): at android.view.View$PerformClick.run(View.java:14105)
06-06 00:44:25.230: E/AndroidRuntime(3855): at android.os.Handler.handleCallback(Handler.java:605)
06-06 00:44:25.230: E/AndroidRuntime(3855): at android.os.Handler.dispatchMessage(Handler.java:92)
06-06 00:44:25.230: E/AndroidRuntime(3855): at android.os.Looper.loop(Looper.java:137)
06-06 00:44:25.230: E/AndroidRuntime(3855): at android.app.ActivityThread.main(ActivityThread.java:4424)
06-06 00:44:25.230: E/AndroidRuntime(3855): at java.lang.reflect.Method.invokeNative(Native Method)
06-06 00:44:25.230: E/AndroidRuntime(3855): at java.lang.reflect.Method.invoke(Method.java:511)
06-06 00:44:25.230: E/AndroidRuntime(3855): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
06-06 00:44:25.230: E/AndroidRuntime(3855): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
06-06 00:44:25.230: E/AndroidRuntime(3855): at dalvik.system.NativeStart.main(Native Method)
'그냥 충돌'은 의미있는 오류 보고서가 아닙니다. ADB를 연결하고 logcat을 실행하고 자세한 충돌 메시지를 게시하십시오. –
게시물 충돌이보고 – Sameer
@Sameer 예, 잘 작동합니다. –