Cara menangani Handler yang tidak digunakan lagi di android [duplikat]

Aug 21 2020

Sebelumnya kode ini bekerja dengan sempurna.

Sekarang ini menunjukkan android.os.handler tidak digunakan lagi.

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

Bagaimana kita bisa mengatasi masalah ini.

Jawaban

10 AlphaOne Aug 21 2020 at 06:31

Seperti yang disebutkan oleh Mike di komentar, Handlertidak usang. Cara membuat objek dari Handler new Handler()sudah tidak digunakan lagi.

Sesuai dokumentasi, penggunaan new Handler()dapat menyebabkan bug. Jadi, Anda harus menentukan looper untuk handler secara eksplisit. Looper tidak boleh nol.

Lihat kode:

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