Android - Моя активность ломает блокировку экрана - PullRequest
1 голос
/ 11 марта 2012

Итак, у меня есть активность, которая выходит за пределы экрана блокировки. Но когда я выхожу, он ломает мой экран блокировки. Хорошо, не буквально ... но я не могу успешно заблокировать мой телефон снова. Я должен перезапустить его. Я чувствую, что просто забываю вставить что-то в мой onDestroy - как будто мне нужно снова заблокировать экран блокировки после того, как все сделано. ИДК. В чем проблема?

Блокировка экрана Активность:

@Override
public void onCreate(Bundle icicle){
    super.onCreate(icicle);
    setContentView(R.layout.lockscreen);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON|
            WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);//gotta get it to open on lock screen

    ImageView iv = (ImageView)findViewById(R.id.Background);
    //iv.getBackground().setAlpha(50);

    Button close = (Button)findViewById(R.id.Close);
    close.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v) {
            finish();
        }
    });

    KeyguardManager km = (KeyguardManager)getSystemService(KEYGUARD_SERVICE);
    final KeyguardManager.KeyguardLock kl = km.newKeyguardLock("IN");
    kl.disableKeyguard();

    PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
    PowerManager.WakeLock wl=pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.FULL_WAKE_LOCK, "My_App");
    wl.acquire();

    /*Builder adb = new AlertDialog.Builder(this);
    adb.setMessage("Testing");
    adb.setCancelable(false);
    adb.setNeutralButton("Close",new DialogInterface.OnClickListener(){
        @Override
        public void onClick(DialogInterface dialog, int which) {
            kl.reenableKeyguard();
        }
    });
    AlertDialog ad = adb.create();
    ad.show();*/

    wl.release();
}

Как видите, я только что закончил занятие. Я забыл что-то сделать на Дестрой?

Спасибо

1 Ответ

0 голосов
/ 11 марта 2012

Ого ... это так просто:

kl.reenableKeyguard();

поставить это кнопка, которая отменяет это:

@Override
        public void onClick(View v) {
            kl.reenableKeyguard();
            finish();
        }

Все еще пытаюсь понять, как сделать его невозможным с помощью кнопки "назад" ...

EDIT:

Кажется, мне не нужен финал на KL. так вот как бы вы это сделали:

KeyguardManager.KeyguardLock kl;

@Override
public void onDestroy(){
    kl.reenableKeyguard();
    super.onDestroy();
}

@Override
public void onCreate(Bundle icicle){
    super.onCreate(icicle);
    setContentView(R.layout.lockscreen);
    KeyguardManager km = (KeyguardManager)getSystemService(KEYGUARD_SERVICE);
    kl = km.newKeyguardLock("IN");
    kl.disableKeyguard();
}

Только для тех, кому это нужно в будущем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...