10

嗨,我正在创建一个应用程序来显示来自服务的警报计数,并且当我的屏幕锁定时我必须更新它。

但我得到了一个输出但它没有更新任何人都可以帮助我

这是我的输出

这是我用于在锁定屏幕中显示文本的代码

 String message ="New alarm :"+ alarmnew.size()+"\n old alarm :"+alarmold.size();
 Settings.System.putString(this.getContentResolver(),
         Settings.System.NEXT_ALARM_FORMATTED, message);
4

2 回答 2

1

为此,您首先需要解锁屏幕,然后更新显示并再次锁定屏幕。您可以使用window.addFlags(LayoutParams.FLAG_DISMISS_KEYGUARD) 锁定或解锁屏幕;和 DevicePolicyManager lockNow()方法。

实际上,当屏幕锁定时,您的应用程序会转到 onPause() 但应用程序的服务会在后台运行时继续运行。因此,要解决您的问题,您需要在几分之一秒内唤醒您的应用程序,然后更新屏幕,然后再次锁定屏幕。

于 2012-09-13T06:55:15.830 回答
0

伙计们,感谢@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();
}
于 2012-09-13T08:17:11.730 回答