Как отключить Wakelock? - PullRequest
       43

Как отключить Wakelock?

0 голосов
/ 17 февраля 2012

Я пытаюсь включить бесконтактный замок при портретной ориентации и выключить при использовании этого кода в альбомной ориентации, но он всегда остается активным:

//in onCreate() of my Activity

    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
    mProximityWakeLock = pm.newWakeLock(32, ""); // proximity_wake_lock=32
    mProximityWakeLock.setReferenceCounted(false);

    if (getResources().getConfiguration().orientation != Configuration.ORIENTATION_LANDSCAPE) {
        Toast.makeText(this, "non landascape", Toast.LENGTH_SHORT).show();

        if (!mProximityWakeLock.isHeld()) {
            mProximityWakeLock.acquire();
            Toast.makeText(this, "acquired", Toast.LENGTH_SHORT).show();
        }

        if (!mProximityWakeLock.isHeld())
            Toast.makeText(this, "not held", Toast.LENGTH_SHORT).show();
        else
            Toast.makeText(this, " held", Toast.LENGTH_SHORT).show();

    } else {

        if (!mProximityWakeLock.isHeld())
            Toast.makeText(this, "not held", Toast.LENGTH_SHORT).show();
        else
            Toast.makeText(this, " held", Toast.LENGTH_SHORT).show();

        Toast.makeText(this, "landascape", Toast.LENGTH_SHORT).show();

        if (mProximityWakeLock.isHeld()) {
            mProximityWakeLock.release();
            Toast.makeText(this, "released", Toast.LENGTH_SHORT).show();
        }

    }

Похоже, он никогда не удерживается при включениипейзаж ... Как на самом деле работает isHeld()?В чем проблема с кодом?

1 Ответ

0 голосов
/ 17 февраля 2012

Похоже, вы создаете новый wakelock каждый раз, когда вы поворачиваете экран, и новый wakelock не удерживается.

Если вы посмотрите в журналах, вы можете увидеть что-то об утечках из вейк-руков.

...