Comment gérer le gestionnaire obsolète dans Android [duplicate]
Aug 21 2020
Auparavant, ce code fonctionnait parfaitement.
Maintenant, il montre que android.os.handler est obsolète.
private final Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case MESSAGE_STATE_CHANGE:
break;
}
}
Comment pouvons-nous résoudre ce problème.
Réponses
10 AlphaOne Aug 21 2020 at 06:31
Comme mentionné par Mike dans les commentaires, Handlern'est pas obsolète. La manière de créer un objet de Handler en utilisant new Handler()est déconseillée.
Selon la documentation, l'utilisation new Handler()peut entraîner des bogues. Vous devez donc spécifier explicitement un looper pour le gestionnaire. Le Looper ne doit pas être nul.
Référez-vous au code:
private final Handler mHandler = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case MESSAGE_STATE_CHANGE:
break;
}
}