Arrêter le gestionnaire d'après le frgment a été détruit
J'ai un Fragment
qui met en place un ListView
et crée un Handler
pour mettre à jour le Listview
périodiquement. Cependant, il semble que la Handler
fonctionne encore après la Fragment
a été détruit.
Voici le code.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//boilerplate code
final Handler handler = new Handler();
handler.post(new Runnable() {
@Override
public void run() {
assignAdapter();
handler.postDelayed(this, 15000);
}
});
return v;
}
La mise à jour de la ListView
après la destruction de la Fragment
entraîne l'application crash. Comment puis-je causer la Handler
pour arrêter le Fragment
est détruit? Je voudrais aussi savoir quels sont les effets que si toute la suspension de l'application sur le Handler
.
OriginalL'auteur Sandah Aung | 2015-04-21
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour mettre en œuvre gestionnaire comme ce
OriginalL'auteur Murtaza Khursheed Hussain
Vous avez besoin de stocker une référence à votre gestionnaire et praticable dans le fragment, puis lorsque le fragment est détruit, vous devez supprimer les rappels à partir du gestionnaire de passage dans l'exécutable.
OriginalL'auteur Nicholas Hall
Une autre façon de stopper le gestionnaire avec l'utilisation de
WeakReference
le fragment:où
fragment.hasBeenDestroyed()
est tout simplement un getter pourmDestroyed
propriété d'un fragment:OriginalL'auteur Kuba Spatny
Quelqu'un a posté une autre question similaire, et le problème est dû à un bogue dans le
ChildFragmentManager
. Fondamentalement, laChildFragmentManager
se retrouve avec une fracture interne de l'état lorsqu'il est détaché de laActivity
. Jetez un oeil à la réponse originale à cette question iciOriginalL'auteur Yaco Zaragoza
Utilisation Rxjava, de son mieux
Puis dans ondestroy() appel de la méthode
Rxjava fournit de nombreux intégré des fonctions telles que sauter, subscribeOn, observeOn et de beaucoup d'autres qui peuvent être révélées utiles par conséquent, il est mieux. Ne consultez Rxjava.
OriginalL'auteur Raghav Sharma