Как обработать устаревший обработчик в android [дубликат]

Aug 21 2020

Раньше этот код работал идеально.

Теперь он показывает, что android.os.handler устарел.

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

Как мы можем решить эту проблему.

Ответы

10 AlphaOne Aug 21 2020 at 06:31

Как упоминал Майк в комментариях, Handlerне является устаревшим. Способ создания объекта с помощью Handler new Handler()устарел.

Согласно документации, использование new Handler()может привести к ошибкам. Поэтому вы должны явно указать петлитель для обработчика. Looper не должен быть нулевым.

Обратитесь к коду:

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