Android:禁用键盘保护后无法重新启用它

Android:禁用键盘保护后无法重新启用它,第1张

概述我正在尝试在我的应用程序中创建一个选项(使用复选框首选项)供用户禁用和重新启用锁定屏幕.我使用disableKeyguard()禁用锁定屏幕,它可以完美工作,但是我无法使reenableKeyguard()正常工作.该代码非常简单,我不知道为什么它不起作用.publicvoidonSharedPreferenceChanged(Share

我正在尝试在我的应用程序中创建一个选项(使用复选框首选项)供用户禁用和重新启用锁定屏幕.我使用disableKeyguard()禁用锁定屏幕,它可以完美工作,但是我无法使reenableKeyguard()正常工作.该代码非常简单,我不知道为什么它不起作用.

public voID onSharedPreferenceChanged(SharedPreferences taskprefs,        String tasks_pref) {    boolean skiplock = taskprefs.getBoolean("pref_skiplock", false);    boolean screentimeout = taskprefs.getBoolean("pref_screentimeout",            false);    skiplock(skiplock);    // Log.v("TaskActivity", "Skiplock value is " + skiplock);    // Log.v("TaskActivity", "ScreenTimeout value is " + screentimeout);}private voID skiplock(boolean action) {    KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Activity.KEyguard_SERVICE);    keyguardlock lock = keyguardManager.newkeyguardlock(KEyguard_SERVICE);    //    if (action == true) {        lock.disableKeyguard();        Toast.makeText(getApplicationContext(), "Lockscreen Disabled",                Toast.LENGTH_SHORT).show();    }    //    else if (action==false) {        lock.reenableKeyguard();        Toast.makeText(getApplicationContext(), "Lockscreen Enabled",                Toast.LENGTH_SHORT).show();    }}

解决方法:

问题是每次调用一次时,都会在skiplock()方法内部创建(声明)一个新的Keyguard对象.一个简单的解决方案是将键盘锁声明为全局对象,并引用该单个对象,以便在方法完成执行时不会重置其状态.

简而言之,只需将“ KeguardLock锁”和“ KeyguardManager keyguardManager”用作全局构造函数即可.

总结

以上是内存溢出为你收集整理的Android:禁用键盘保护后无法重新启用它全部内容,希望文章能够帮你解决Android:禁用键盘保护后无法重新启用它所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1085309.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存