Veuillez consulter le code ci-dessous :
public class MyGridFragment extends Fragment{
Handler myhandler = new Handler() {
@Override
public void handleMessage(Message message) {
switch (message.what) {
case 2:
ArrayList<HashMap<String,String>> theurls = (ArrayList<HashMap<String,String>>) message.obj;
urls.addAll(theurls);
theimageAdapter.notifyDataSetChanged();
dismissBusyDialog();
break;
}
}
}
}
Lorsque j'utilise un gestionnaire comme celui-ci, j'obtiens un avertissement "le gestionnaire doit être statique, sinon il est sujet à des fuites de mémoire". Quelqu'un peut-il me dire quelle est la meilleure façon de procéder ?
2 votes
Je ne suis pas convaincu que tu utilises le manipulateur correctement. Jetez un coup d'oeil à ce guide : vogella.com/articles/AndroidPerformance/article.html . Il n'est pas déclaré comme statique dans l'exemple de code ici. :/
0 votes
Même en l'utilisant comme ça, je reçois la même erreur. Cela n'arrivait jamais avant que je mette à jour mon SDK Android la nuit dernière. Le simple fait de déclarer un gestionnaire comme une variable de classe fait apparaître cet avertissement de lint maintenant.
0 votes
Et si vous déclariez simplement votre gestionnaire statique ?
0 votes
@Zsombor Je fais référence aux objets non statiques dans le gestionnaire.
2 votes
Regarde ça article de blog pour une analyse plus approfondie