0

我已经使用警报管理器来调用活动,并且我正在使用唤醒储物柜类onRecive() 来唤醒手机,然后在活动结束后调用 WakeLocker.release() 但屏幕仍然保持打开...

接收类:

public class MyScheduledReceiver extends BroadcastReceiver {


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

活动类

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

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

4

3 回答 3

1

确保您请求许可

<uses-permission android:name="android.permission.WAKE_LOCK" />
于 2011-12-21T20:18:47.330 回答
0

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

你永远不应该在广播接收器中启动任何应该存在一段时间的东西,因为接收器会尽快被销毁。

于 2011-12-21T20:33:27.617 回答
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();
于 2012-10-08T09:59:26.997 回答