Rumah Media Sosial Cara Menggunakan Kelas AsyncTask dalam Apl Android anda - dummies

Cara Menggunakan Kelas AsyncTask dalam Apl Android anda - dummies

Isi kandungan:

Video: Thread and Async Task Android (Mobile Programing) 2025

Video: Thread and Async Task Android (Mobile Programing) 2025
Anonim

AsyncTask adalah apa yang anda gunakan apabila sesuatu mengambil masa terlalu lama semasa menjalankan apl Android anda. Contohnya, pengguna meminta halaman web. Siapa tahu berapa lama masa untuk mengambil halaman? Perkhidmatan yang menjadi tuan rumah laman web mungkin mengalami kelantangan yang tinggi. Atau pengguna mungkin berada di kereta api melalui terowong.

Semua jenis perkara mungkin melambatkan pengambilan semula halaman. Dan semasa pengambilan semula ini, pengguna mungkin mahu mengklik butang, menatal dokumen, atau melakukan sesuatu yang menuntut tindak balas dari aplikasi anda.

Anda tidak boleh menghentikan persembahan semasa apl anda menunggu halaman web, menjana garis masa Twitter, atau mengemas kini status Twitter pengguna. Itulah sebabnya anda kod permintaan rangkaian di dalam AsyncTask.

AsyncTask Android adalah cukup serba boleh untuk menangani semua jenis nilai. Malah, dokumentasi mendefinisikan AsyncTask dengan cara ini:

android. os. AsyncTask

Takrif mempunyai tiga ruang letak jenis generik - Params, Progress, and Result. Apabila anda membuat AsyncTask anda sendiri, anda "mengisi kekosongan" dengan menyatakan jenis sebenar sebagai ganti Params, Kemajuan, dan Keputusan.

Menghantar tweet baru

Untuk menambah tweet bagi pihak pengguna, anda mengambil objek Twitter (contoh yang anda buat dengan kilang getInstance ()), dan anda panggil contoh kaedahStatus terkini. Anda tidak mahu permintaan rangkaian ini mengganggu aliran aktiviti utama anda, jadi anda meletakkan permintaan di dalam AsyncTask. Nama tugas ialah MyAsyncTaskTweet. Tiga jenis generik tugas adalah seperti berikut: String, Void, dan String:

kelas awam MyAsyncTaskTweet memanjangkan AsyncTask << String , Void , String >> { tweet 140 aksara. Kod
  • laksanakan (editTextTweet. GetText (). ToString ())

    merebut rentetan aksara dari salah satu medan teks aktiviti dan melewati rentetan ke MyAsyncTaskTweet. Di dalam MyAsyncTaskTweet, kaedah doInBackground memanggil bahawa rentetan tweet [0] dan menggunakan tweet itu [0] rentetan untuk mengemas kini status pengguna.

    Parameter untuk kaedah updateStatus adalah elemen tatasusunan. Itu kerana, dalam header kaedah doInBackground, tweet adalah parameter varargs. Perkataan varargs bermaksud "nombor pembolehubah pembolehubah. "Anda boleh lulus seberapa banyak nilai untuk doInBackground yang anda mahu. Di dalam badan kaedah, anda merawat tweet seolah-olah ia adalah susunan biasa. Nilai tweet pertama ialah tweet [0]. Sekiranya terdapat nilai tweet kedua, ia akan menjadi tweet [1], dan sebagainya.
    

    Jenis kedua (Kekosongan) bermaksud nilai (atau nilai) yang menandakan kemajuan thread latar belakang dalam menyelesaikan tugasnya.

    Oleh kerana tidak ada penunjuk kemajuan, nama jenis kedua adalah Tidak sah.

  • Di Jawa, kelas Void adalah kelas bungkus untuk nilai kekosongan. Letakkan itu di dalam lubang hitam anda tanpa apa-apa!

    Jenis ketiga (String) bermaksud frasa seperti

    Kejayaan!

  • atau Gagal tweet . Kaedah doInBackground menjumpai rentetan yang berkaitan dengan rentetan R.. kejayaan, rentetan R.. twitter_failure, atau rentetan R.. general_failure dan mengembalikan rentetan ini sebagai hasilnya. Kemudian kaedah onPostExecute memaparkan rentetan ini dalam bidang editTextTweet skrin. Imej ini meringkaskan cara nama jenis generik mempengaruhi jenis kaedah.

    Penggunaan jenis dalam MyAsyncTaskTweet.

Imej di bawah merangkum bagaimana nilai bergerak dari satu tempat ke tempat lain di MyAsyncTaskTweet.

Aliran nilai dalam MyAsyncTaskTweet.

Mendapatkan garis masa pengguna

Jika anda melihat satu AsyncTask, anda telah melihat 'em semua! Kelas MyAsyncTaskTimeline hampir sama dengan MyAsyncTaskTweet. Satu-satunya perbezaan adalah seperti berikut:

Di MyAsyncTaskTweet, parameter yang diluluskan ke doInBackground dianggap sebagai tweet. Tetapi dalam MyAsyncTaskTimeline, parameter yang diluluskan ke doInBackground adalah nama pengguna. Kod ini meluluskan nama pengguna ini kepada kaedah getUserTimeline.

Di MyAsyncTaskTweet, nilai yang dikembalikan dari doInBackground adalah mesej kejayaan atau kegagalan. Tetapi dalam MyAsyncTaskTimeline, nilai yang kembali dari doInBackground adalah rentetan penuh tweet (garis masa).

  • Kod untuk mengambil garis masa pengguna kelihatan seperti ini:

  • Senarai status = null; statuses = twitter. getUserTimeline (username [0]);

Seorang rakan bernama Yusuke Yamamoto mengembangkan Twitter4J (atau sekurang-kurangnya, Yusuke Yamamoto adalah pemimpin projek Twitter4J), dan pada satu ketika, Encik Yamamoto memutuskan bahawa kaedah getUserTimeline mengembalikan koleksi twitter4J. Objek status. (Setiap twitter4J, contohnya mengandungi satu tweet.) Jadi, untuk menghormati kontrak yang ditetapkan dengan memanggil kaedah getUserTimeline, kod mengisytiharkan status untuk menjadi koleksi twitter4J. Objek status.

Beberapa baris kemudian dalam kod, yang dipertingkatkan untuk langkah-langkah pernyataan melalui pengumpulan nilai status dan memasukkan teks setiap nilai ke rentetan hasil yang besar. Gelung itu menambah "n" (watak barisan ke-baris Java) selepas setiap tweet untuk ukuran yang baik. Dalam kaedah onPostExecute, kod tersebut memaparkan rentetan hasil besar dalam medan teksViewTimeline skrin.

Dalam kaedah doInBackground kedua, nama twitter4j yang lengkap. Status digunakan. Ini dilakukan untuk membezakan twitter4J. Kelas status dari AsyncTask Android sendiri. Kelas status (kelas dalaman kelas AsyncTask).

AsyncTask boleh agak rumit. Tetapi apabila anda membandingkan AsyncTask Android dengan alternatif threading diri, idea AsyncTask tidak sama sekali buruk. Sebenarnya, apabila anda mendapat sedikit latihan dan membuat beberapa kelas AsyncTask anda sendiri, anda sudah biasa memikirkannya. Seluruh perniagaan mula berasa agak semula jadi.

Cara Menggunakan Kelas AsyncTask dalam Apl Android anda - dummies

Pilihan Editor

Cara Tambah Gambar dalam OneNote 2013 pada Android - dummies

Cara Tambah Gambar dalam OneNote 2013 pada Android - dummies

OneNote membolehkan anda tambah gambar sedia ada pada nota anda atau snap imej untuk nota selagi Android mempunyai kamera - seperti kebanyakan peranti lakukan. Anda mempunyai dua pilihan apabila menambah gambar pada nota: Ambil gambar: Apabila anda di mana-mana kecuali dalam nota sebenar, anda melihat ...

Cara Konfigurasi Pengaturan OneNote untuk Peranti iOS - dummies

Cara Konfigurasi Pengaturan OneNote untuk Peranti iOS - dummies

OneNote untuk iOS tidak mempunyai banyak tetapan anda sebenarnya boleh berubah. Ketik butang Tetapan di bahagian atas skrin Laman Utama untuk memanggil tetingkap Tetapan dengan cepat. Lihat tetapan dalam apl untuk iOS Senarai berikut secara ringkas menerangkan item dalam tetingkap ini: Naik taraf: OneNote untuk iOS membolehkan anda mempunyai sehingga ...

10 Sumber dan Add-Ins untuk OneNote 2013 - dummies

10 Sumber dan Add-Ins untuk OneNote 2013 - dummies

OneNote bukanlah aplikasi yang paling popular sehingga baru-baru ini, mempunyai lebih banyak kultus berikut daripada dikenali sebagai aplikasi go-to. Sumber untuk OneNote 2013 tidak banyak pada masa ini, dan beberapa daripada mereka yang wujud - bahkan mereka dari Microsoft - tidak selalu dikemas kini seberapa kerap yang anda harap. Namun, terdapat ...

Pilihan Editor

Improvisasi Navigasi di Gurun - patung

Improvisasi Navigasi di Gurun - patung

Menggunakan matahari, bintang, dan kepintaran kecil dapat membantu anda mencari cara di padang gurun dan mudah dilakukan lebih kerap daripada tidak. Ingat, orang telah menggunakan langit untuk menavigasi ribuan tahun. Teknik-teknik berikut boleh digunakan di mana-mana sahaja di Bumi dan kadang-kadang sangat tepat, tetapi ...

Petua untuk khemah perkhemahan - kelahiran

Petua untuk khemah perkhemahan - kelahiran

Perkhemahan adalah cara yang luar biasa untuk meluangkan masa di luar rumah yang hebat. Tetapi jika anda berkhemah khemah, anda tidak mahu mengalu-alukan terlalu banyak dari luar rumah yang hebat ke dalam khemah anda. Pelancongan bahagia memerhati peraturan yang mudah, seperti yang terdapat dalam senarai berikut, untuk menjaga tantangan yang rapi dan selamat: Untuk menjaga dalaman bersih (atau ...

Pilihan Editor

Kanser buah pinggang dan Kencing Kencing untuk Ujian Pembantu Doktor

Kanser buah pinggang dan Kencing Kencing untuk Ujian Pembantu Doktor

Dua syarat yang anda tidak mahu untuk melangkau untuk Ujian Pembantu Doktor adalah kanser buah pinggang dan kanser pundi kencing. Anda perlu agresif dalam penyiasatan anda tentang keganasan yang mungkin kerana, banyak kali, ia membuktikan secara tidak sengaja. Karsinoma sel renal (RCC) Apabila anda berfikir tentang kanser ginjal, jenis sel histologi yang paling biasa anda lihat adalah ...

Bagaimana Menangani Komplikasi Kehamilan untuk Ujian Pembantu Doktor - patmum

Bagaimana Menangani Komplikasi Kehamilan untuk Ujian Pembantu Doktor - patmum

Apabila kehamilan berjalan normal tanpa sebarang komplikasi. Oleh kerana Peperiksaan Penolong Doktor akan meliputi, malangnya, komplikasi boleh dan berlaku pada kehamilan. Anda harus akrab dengan beberapa keadaan ini, daripada hipertensi yang tidak terkawal untuk gangguan pendarahan yang muncul. Kehamilan ektopik Kehamilan ektopik adalah kehamilan di luar rahim. Yang paling ...

Asas untuk Ujian Pembantu Doktor

Asas untuk Ujian Pembantu Doktor

Anda tahu bahawa tekanan darah yang tidak normal adalah komponen dari banyak keadaan penyakit yang akan diliputi pada Peperiksaan Pembantu Doktor. Hipertensi adalah istilah untuk tekanan darah tinggi, dan ia adalah wabak di Amerika Syarikat. Tekanan darah berguna untuk menilai kesihatan. Itulah sebabnya bersama-sama dengan suhu, denyutan jantung, dan pernafasan ...