Rumah > Java > javaTutorial > Mengapakah Penggunaan `runOnUiThread` Android yang Salah Membawa kepada UI Tidak Responsif?

Mengapakah Penggunaan `runOnUiThread` Android yang Salah Membawa kepada UI Tidak Responsif?

Barbara Streisand
Lepaskan: 2024-12-23 20:54:11
asal
854 orang telah melayarinya

Why Does Incorrect Use of Android's `runOnUiThread` Lead to Unresponsive UI?

Memahami runOnUiThread dalam Android

Dalam pembangunan Android, urutan UI bertanggungjawab untuk mengendalikan interaksi pengguna dan mengemas kini antara muka pengguna. Untuk memastikan semua operasi UI dilakukan pada urutan UI, kaedah runOnUiThread biasanya digunakan.

Dalam coretan kod yang anda berikan, percubaan dibuat untuk mengemas kini UI dalam urutan berasingan menggunakan runOnUiThread. Walau bagaimanapun, pelaksanaan semasa adalah tidak betul, membawa kepada tingkah laku tidak responsif apabila butang klik. Inilah sebabnya:

Penggunaan runOnUiThread yang Salah

Kaedah runOnUiThread menerima contoh Runnable sebagai hujahnya. Dalam kod anda, anda tersilap mencipta urutan baharu melalui Thread(Runnable) dan bukannya melaksanakan runnable dalam aktiviti semasa. Ini menghasilkan urutan yang berasingan tanpa gelung, yang penting untuk mengendalikan acara UI.

Kod Dibetulkan

Versi runThread kaedah adalah seperti berikut:

private void runThread() {

    new Thread() {
        public void run() {
            while (i++ < 1000) {
                try {
                    runOnUiThread(new Runnable() {

                        @Override
                        public void run() {
                            btn.setText("#" + i);
                        }
                    });
                    Thread.sleep(300);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }.start();
}
Salin selepas log masuk
Dalam kod yang diperbetulkan ini, urutan baharu dicipta, tetapi di dalamnya benang,

runOnUiThread digunakan untuk mengemas kini elemen UI pada urutan UI. Contoh Runnable diserahkan kepada runOnUiThread mengandungi kod yang mengemas kini teks butang.

Dengan menggunakan

runOnUiThread dengan betul, anda memastikan semua UI- operasi berkaitan berlaku pada urutan UI utama, menghalang UI membeku dan memastikan tindak balas.

Atas ialah kandungan terperinci Mengapakah Penggunaan `runOnUiThread` Android yang Salah Membawa kepada UI Tidak Responsif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan