2012-09-11 14 views
10

Ciao Sto creando un'app per visualizzare il conteggio degli allarmi che provengono dai servizi e devo aggiornarli quando il mio schermo è bloccato.come modificare il testo dell'impostazione allarme di sistema dinamico

ma sto ottenendo un out ha messo, ma non sta aggiornando uno può aiutarmi

this is my output

questo è un codice che ho usato per la visualizzazione del testo a schermo serratura

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

uno può aiutarmi mi sono bloccato in questo per 2 giorni – Jagan

+0

Ci può fornire con il contenuto in cui si sta eseguendo il codice domanda originale? (Intent handler, forse?) – tinsukE

+0

@tinsukE sto ricevendo un nuovo allarme dal server quando tutti i nuovi allarmi chiamano questo metodo – Jagan

risposta

0

ragazzi ho finalmente trovato la risposta a questo prob grazie a @ dd619 suo concetto

il concetto che ho usato è che prima ho bisogno di sbloccare lo schermo quindi aggiornare la visualizzazione e di nuovo bloccare lo schermo.

questo è il mio codice finale per questa applicazione

{ 
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

per prima cosa è necessario sbloccare lo schermo, quindi aggiornare la visualizzazione e bloccare nuovamente lo schermo. puoi bloccare o sbloccare lo schermo usando, window.addFlags (LayoutParams.FLAG_DISMISS_KEYGUARD); e DevicePolicyManager lockNow() metodo.

In realtà quando lo schermo si blocca, l'applicazione passa a onPause() ma i servizi dell'applicazione continuano a funzionare mentre vengono eseguiti in background. Quindi, per risolvere il problema è necessario attivare l'applicazione per una frazione di secondo, quindi aggiornare lo schermo e poi di nuovo bloccare lo schermo.

+0

come faccio ad usarlo nella codifica di qualsiasi esempio – Jagan