0

アラーム マネージャーを使用してアクティビティを呼び出し、ウェイク ロッカー クラスonRecive() を使用して電話をスリープ解除し、アクティビティが終了した後に WakeLocker.release() を呼び出していますが、画面はオンのままです...

受信クラス:

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() のどこにでも入れました...物は解放されず、アプリを閉じた後に画面が自動的にオフになりません...

4

3 に答える 3

1

必ず許可をリクエストしてください

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

ブロードキャストレシーバーでウェイクロックを開始し、アクティビティで停止しています。ウェイクロックの 2 つの異なるインスタンスを参照しています。onreceive からアクティビティを開始し、onresume で wake lock を取得し、それが必要な場合は 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 に答える