WakeLock没有释放,屏幕没有关闭

时间:2011-12-21 20:08:25

标签: android wakelock android-wake-lock

我使用闹钟管理器来调用一个活动,我正在使用wake locker class onRecive()来唤醒手机,然后在Activity结束后调用WakeLocker.release(),但屏幕仍然保持打开状态...

Receive.class:

public class MyScheduledReceiver extends BroadcastReceiver {


@Override
public void onReceive(Context context, Intent intent) {
    WakeLocker.acquire(context);

Activity.class

@Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        WakeLocker.release();
        finish();
        }

我把它放在onPause(),onStop()的各个地方......这个东西不会释放,我的应用程序关闭后屏幕也不会自动关闭...

3 个答案:

答案 0 :(得分:1)

确保您申请权限

<uses-permission android:name="android.permission.WAKE_LOCK" />

答案 1 :(得分:0)

您正在广播接收器中启动唤醒锁并在活动中停止它。 您正在引用一个唤醒锁的两个不同实例。您应该从onreceive开始活动,并在onresume中获取唤醒锁定,然后在暂停时释放,如果这是您希望它发生的地方。

你不应该在广播接收器中启动任何应该存在一段时间的事情,因为接收器会尽快被破坏。

答案 2 :(得分:0)

试试这个

PowerManager pm;
PowerManager.WakeLock wakeLock;

pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
                    wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK,
                            "x2_wakelook");


wakeLock.acquire();
wakeLock.release();