J'ai un récepteur de radiodiffusion dans mon programme pour obtenir réagir au niveau de la batterie comme ceci:Obtenez le niveau de la batterie avant récepteur de radiodiffusion répond pour 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));
Cependant ce code doit attendre l'état de la batterie être mis à jour, donc si vous avez un élément GUI qui doit être défini en fonction du niveau de la batterie, il doit attendre qu'un événement de batterie se produise. Y a-t-il un moyen de pousser ça pour le faire fonctionner ou simplement d'exécuter du code pour voir quel était le niveau de batterie lors de la dernière diffusion?
Le récepteur que j'ai dans la question est effectivement appelé dès qu'il est créé que je n'ai tout simplement pas remarqué parce que j'ai réinitialisé les variables après elle. – stealthcopter
Est-ce que obtenir l'applicationContext comme décrit ci-dessous pour faire cet appel causer des problèmes? J'ai le problème que mon récepteur de diffusion n'est pas autorisé à s'inscrire pour les intentions, même si je passe en null. Quelle est la bonne solution à ce problème? –
@Mayra: 'getApplicationContext()' devrait être bien ici, en particulier si vous essayez de le faire à partir d'un 'BroadcastReceiver'. – CommonsWare