0

Avant de le marquer en double, veuillez lire la description complète (mauvaise expérience cette semaine).L'activité a fui IntentReceiver même après l'enregistrement

Voici mon code, pour être sûr que j'ai ajouté l'enregistrement et la désinscription dans les cinq méthodes. myReceiver est un membre privé non statique de niveau classe.

@Override 
    public void onPause() { 
     super.onPause(); 
     UnRegisterInternetBroadcast(); 
     storePreferences(); 
    } 

    @Override 
    public void onResume() { 
     super.onResume(); 
     RegisterInternetBroadcast(); 
    } 

    @Override 
    protected void onStop() 
    { 
     UnRegisterInternetBroadcast(); 
     super.onStop(); 
    } 
    @Override 
    protected void onDestroy() { 
     UnRegisterInternetBroadcast(); 
     super.onDestroy(); 
    } 

Je n'ai pas <receiver> défini dans mon xml Manifest. Tout ce que j'ai est sous le code à gérer. Comme d'autres articles sur internet et des questions dans stackoverflow, je ne devrais recevoir aucune fuite de mémoire. Des choses manquantes dans mon code? targetSdkVersion est 25 et je suis en train de tester dans Marshmallow OS.

Cordialement,

Harsha

Répondre

0

Vous avez défini myReceiver = null; dans RegisterInternetBroadcast() mais cela provoque l'échec du UnRegisterInternetBroadcast(), car le récepteur est nul.

Supprimer cette ligne et cela devrait fonctionner.

+0

yikes ... c'est honte pour moi .. Je voulais les écrire dans UnRegisterInternetBroadcast() placé à un endroit totalement faux. – harshal

0

Vous devriez désenregistrer le service dans la méthode OnDestroy() aussi.

+0

oui .. code à l'intérieur de onDestroy() était longueur .. donc je n'avais pas ajouté en question .. maintenant sentir son bon à ajouter .. – harshal

+0

pouvez-vous poster vos journaux? –