【问题标题】:Android - My Activity breaks lockscreenAndroid - 我的活动打破了锁屏
【发布时间】:2012-03-11 02:39:59
【问题描述】:

所以我的锁屏上有一个活动。但是当我退出它时,它会破坏我的锁屏。好的,不是字面意思......但我无法再次成功锁定我的手机。我必须重新启动它。我觉得我只是忘记在我的 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();
}

如你所见,我刚刚完成了活动。我是不是忘记在 onDestroy 上做点什么了?

谢谢

【问题讨论】:

标签: android android-activity lockscreen ondestroy


【解决方案1】:

哇...就这么简单:

kl.reenableKeyguard();

这是取消它的按钮:

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

仍在尝试弄清楚如何通过后退按钮使其无法取消....

编辑:

似乎我不需要在 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();
}

仅适用于将来需要此功能的任何人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-20
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多