2012-09-11 87 views
10

嗨我正在創建一個應用程序來顯示來自服務的警報計數,我必須更新,當我的屏幕鎖定。如何更改系統鬧鐘設置文本動態

,但我得到一個出來放,但它並沒有更新任何一個可以幫助我

this is my output

這是我用來顯示在鎖屏文本代碼

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

任何一個可以幫助我,我卡在這2天 – Jagan

+0

你能向我們提供您正在運行原來的問題中的內容,最後的編碼? (意圖處理程序,也許?) – tinsukE

+0

@tinsukE我從服務器geting新的警報時,他們都是一個新的警報,我打電話給這種方法 – Jagan

回答

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

首先你需要解鎖屏幕然後更新顯示並再次鎖定屏幕。您可以使用以下方法鎖定或解鎖屏幕:window.addFlags(LayoutParams.FLAG_DISMISS_KEYGUARD);和DevicePolicyManager lockNow()方法。

實際上,當屏幕鎖定時,您的應用程序會轉到onPause(),但應用程序的服務會在後臺運行時繼續運行。因此,要解決您的問題,需要將應用程序喚醒幾秒鐘,然後更新屏幕然後再鎖定屏幕。

+0

我如何在編碼任何示例時使用它 – Jagan