如何更改系统警报设置文本动态
Posted
技术标签:
【中文标题】如何更改系统警报设置文本动态【英文标题】:how to change system alarm setting text dynamic 【发布时间】:2012-09-04 01:57:02 【问题描述】:您好,我正在创建一个应用程序来显示来自服务的警报计数,并且我必须在我的屏幕锁定时更新它。
但是我得到了一个输出但它没有更新任何人可以帮助我
这是我用于在锁定屏幕中显示文本的代码
String message ="New alarm :"+ alarmnew.size()+"\n old alarm :"+alarmold.size();
Settings.System.putString(this.getContentResolver(),
Settings.System.NEXT_ALARM_FORMATTED, message);
【问题讨论】:
谁能帮帮我,我被困在这两天了 您能否向我们提供您运行原始问题代码的内容? (可能是意图处理程序?) @tinsukE 当我调用此方法时,我从服务器收到了新警报 @tinsukE 当它被锁定时,我没有得到任何更新,但是当我解锁它并再次锁定它时,它已被更新。我想在锁定时在锁定屏幕上获取更新 【参考方案1】:为此,您首先需要解锁屏幕,然后更新显示并再次锁定屏幕。您可以使用 window.addFlags(LayoutParams.FLAG_DISMISS_KEYGUARD) 锁定或解锁屏幕;和 DevicePolicyManager lockNow() 方法。
实际上,当屏幕锁定时,您的应用程序会进入 onPause(),但应用程序的服务会在后台运行时继续运行。因此,要解决您的问题,您需要在几分之一秒内唤醒您的应用程序,然后更新屏幕并然后再次锁定屏幕。
【讨论】:
我如何在编写任何示例时使用它【参考方案2】:由于@dd619 他的概念,我终于找到了这个问题的答案
我使用的概念是首先我需要解锁屏幕然后更新显示并再次锁定屏幕。
这是我对这个应用程序的最终编码
Context context= getApplicationContext();
KeyguardManager _guard = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
KeyguardLock _keyguardLock = _guard.newKeyguardLock("KeyguardLockWrapper");
//to disable
_keyguardLock.disableKeyguard();
String message ="New alarm :"+ alarmnew.size()+"\n old alarm :"+alarmold.size();
Settings.System.putString(this.getContentResolver(),
Settings.System.NEXT_ALARM_FORMATTED, message);
//to enable
_keyguardLock.reenableKeyguard();
【讨论】:
以上是关于如何更改系统警报设置文本动态的主要内容,如果未能解决你的问题,请参考以下文章