如何更改系统警报设置文本动态

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();

【讨论】:

以上是关于如何更改系统警报设置文本动态的主要内容,如果未能解决你的问题,请参考以下文章

如何在Android中动态更改文本大小

如何动态更改多个TextView中的文本? [重复]

如何从 iOS 设置中检测动态字体大小更改?

在jquery中更改另一个文本框时动态设置一个文本框值

如何在表视图中正确设置动态标题视图?

如何在模拟器中测试更改文本大小?