Ho un ricevitore di broadcast nel mio programma per arrivare reagire al livello della batteria in questo modo:Ottenere il livello della batteria prima del ricevitore di broadcast risponde per Intent.ACTION_BATTERY_CHANGED
private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context arg0, Intent intent) {
int level = intent.getIntExtra("level", 0);
// do something...
}
}
registerReceiver(this.mBatInfoReceiver,
new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
Tuttavia questo codice deve aspettare per lo stato della batteria a essere aggiornato quindi se si dispone di un elemento della GUI che deve essere impostato in base al livello della batteria, è necessario attendere che si verifichi un evento della batteria. C'è un modo per spingere questo per farlo funzionare o semplicemente eseguire un codice per vedere qual è il livello della batteria nell'ultima trasmissione?
Il ricevitore che ho nella domanda viene chiamato non appena viene creato, ma non l'ho notato perché ho reinizializzato le variabili dopo di esso. – stealthcopter
Otterrà il applicationContext come descritto di seguito per rendere questa chiamata causare problemi? Ho il problema che il mio ricevitore di radiodiffusione non è autorizzato a registrarsi per intenti, anche se passo in null. Qual è la soluzione corretta a questo problema? –
@Mayra: 'getApplicationContext()' dovrebbe andare bene qui, in particolare se stai provando a farlo da un 'BroadcastReceiver'. – CommonsWare