Je travaille sur AndroidService, où toutes les 5 minutes un appel réseau est effectué pour rechercher de nouvelles données à partir de la base de données. J'ai mis en œuvre BroadcastListener
pour écouter la connexion constante à l'intérieur du service, mais l'application plante à chaque fois.BroadcastReciever provoquer un plantage dans AndroidService
Erreur:
java.lang.RuntimeException: Error receiving broadcast Intent { act=android.net.conn.CONNECTIVITY_CHANGE flg=0x4000010 (has extras) } in [email protected]
À l'échelle mondiale a déclaré:
BroadcastReceiver receiver;
code:
@Override
public void onCreate() {
super.onCreate();
registerReceiver(receiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if(ConnectionStatus.isConnected(MyService.this)){
//some work
}
else {
//some task
}
}
};
registerReceiver(receiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
return START_STICKY;
}
Je reçois toujours le même 'RuntimeException', j'ai également supprimé –
Aussi où devrait enregistrer le récepteur? –
Le désinscrivez-vous lorsque le service est détruit? J'ai à peu près exactement le même code dans un service qui fonctionne bien. – Ryan