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
Barbara Streisandasal
2024-12-23 20:54:11813semak imbas

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();
}
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!

Kenyataan:
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