Come gestire il gestore obsoleto in Android [duplicato]

Aug 21 2020

In precedenza questo codice funzionava perfettamente.

Ora sta mostrando android.os.handler è deprecato.

private final Handler mHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        switch (msg.what) {
            case MESSAGE_STATE_CHANGE:
        break;
        }
    }

Come possiamo risolvere questo problema.

Risposte

10 AlphaOne Aug 21 2020 at 06:31

Come accennato da Mike nei commenti, Handlernon è deprecato. Il modo di creare un oggetto di Handler utilizzando new Handler()è deprecato.

Secondo la documentazione, l'utilizzo new Handler()può portare a bug. Quindi dovresti specificare esplicitamente un looper per il gestore. Looper non deve essere nullo.

Fare riferimento al codice:

private final Handler mHandler = new Handler(Looper.getMainLooper()) {
    @Override
    public void handleMessage(Message msg) {
        switch (msg.what) {
            case MESSAGE_STATE_CHANGE:
        break;
        }
    }