Rumah >Java >javaTutorial >Mengapakah Penggunaan `runOnUiThread` Android yang Salah Membawa kepada UI Tidak Responsif?
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 menggunakanrunOnUiThread 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!