Uncategorized

Cara Menggunakan AsyncTask di Android

AsyncTask dapat diartikan sebagai proses asinkronous atau proses yang dilakukan secara terpisah dari proses utama, dalam hal ini adalah user interface (UI). Bahasa populer yang sering digunakan untuk menyebut istilah ini adalah proses yang dilakukan dibalik layar (background process).

Daftar isi catatan

  1. Tipe Umum dalam AsyncTask
  2. Langkah-Langkah Proses pada AsyncTask
  3. Menyiapkan Layout untu Percobaan AsyncTask
  4. Menyiapkan Activity untuk Percobaan AsyncTask
  5. Membuat Inner Class dengan extends AsyncTask
  6. Kode Lengkap MainActivity.java
  7. Output Eksekusi Project di Emulator

Tipe-Tipe Umum AsyncTask

AsyncTask secara umum memiliki 3 tipe generic. yaitu:

  1. Params. Parameter ini adalah ibarat sebuah komando yang harus dijalankan AsyncTask di background. Parameter dikirim dari UI melalui sebuah event.
  2. Progress. Tipe ini digunakan untuk memonitor progres atau kemajuan proses yang dijalankan di background. Tipe ini akan mengirim data ke UI secara simultan selama proses Asyncronous masih berjalan. Penerapan tipe ini seringkali dapat dilihat pada proses download yang dapat menampilkan progress download. Entah itu estimasi waktu download, total yang sudah didownload, atau lainnya.
  3. Result. Tipe ini digunakan untuk menampilkan hasil dari proses yang dijalankan di background.

[box type=”info” align=”” class=”” width=””]Tidak semua tipe AsyncTask selalu digunakan secara bersama-sama. Untuk menandai bahwa sebuah tipe tidak digunakan bisa menggunakan Void (V menggunakan kapital). Contoh:  private class MyTask extends AsyncTask<String, Void, Void> { ... } [/box]

4 Langkah Proses Yang dilakukan AsyncTask

Ketika suatu proses dijalankan melalui AsyncTask maka akan melaui beberapa tahap proses yang dilakukan, yaitu:

  1. onPreExecute() Tahapan ini dilakukan sebelum proses dieksekusi (executed). Proses ini dilakukan di UI Thread. Biasanya digunakan untuk mengonfigurasi proses AsyncTask atau secara umum menampilkan progress bar atau lainnya untuk menandai bahwa proses AsyncTask akan dijalankan.
  2. doInBackground(String... params) Tahapan ini dijalankan setelah tahapan pertama di atas selesai dijalankan.  Tahapan ini adalah proses utama AsyncTask. Pada tahapan ini, kita bisa memonitor berjalannya progress menggunakan publishProgress(Progress...) yang akan mengirimkan data secara simultan ke tahapan onProgressUpdate(Progress...)
  3. onProgressUpdate(Progress...) Tahapan ini bisa kita gunakan untuk mengirim atau menampilkan data di UI mengenai sejauh mana proses AsyncTask berjalan. Paling sering kita jumpai adalah menampilkan proses download.
  4. onPostExecute(Result) Tahapan ini digunakan untuk menampilkan hasil proses yang dijalankan di Background.

Sebuah gambar yang kuambil dari Stackoverflow ini mungkin akan memudahkan kita untuk memahami mengenai proses AsyncTask bekerja.

AsyncTask Flows Image
AsyncTask Flows Image adapted from Stackoverflow

Referensi lebih jauh mengenai proses asinkronous ini bisa dibaca di situs resmi Android Developer di link berikut https://developer.android.com/reference/android/os/AsyncTask.html.

Cara Menggunakan AsyncTask di Android

Sekarang, kita mulai untuk menerapkan proses asinkronous pada aplikasi android yang sedang kita buat. Pada kesempatan ini, aku akan menerapkan AsyncTask pada project baru yang belum ada apa-apanya. Silahkan baca Cara membuat project baru di Android Setudio jika belum membuatnya.

Project ini akan menggunakan AsyncTask secara sederhana. Hanya menjalankan semacam setTimeOut() dengan durasi 20 detik. Selama proses AsyncTask berjalan, UI menampilkan progress bar yang berjalan dari 0 sampai 100 %.

Menyiapkan Layout

Buat layout dengan item sebagai berikut:

  1. TextView untuk menampilkan info sebelum progress, ketika progress berlangsung, dan setelah progress selesai dilaksananan.
  2. Button untuk memulai proses AsyncTask ketika tombol tersebut diklik
  3. ProgressBar untuk menampilkan presentase progress telah dilakukan

Kode layout tersebut secara keseluruhan bisa dilihat seperti di bawah ini:

Menambahkan Style untuk ProgressBar

Style ini ditambahkan pada file styles.xml yang terletak di dalam folder resvalues. Style ini akan mengubah tampilan ProgressBar menjadi lebih tinggi.

Menyiapkan View di Activity

Pertama, deklarasikan TextView, Progressbar, Button di dalam class MainActivity.java

Integrasikan variabel-variabel tersebut dengan komponen yang telah ditambahkan pada activity_main.xml. Pengintegrasian ini dilakukan di dalam method onCreate().

Membuat Inner Class untuk Menjalankan AsyncTask

Kode inner class ditulis di luar method onCreate() namun masih di dalam class MainActivity.java

Kode tersebut ditulis dengan extends AsyncTask<param, progress, result>.

di dalam innerclass testAsynct tersebut selanjutnya kita tambahkan proses preExecute() untuk menampilkan progressBar, mengganti text dan warna TextView sebelum dijalankan.

Selanjutnya membuat proses inti yang dijalankan secara asinkronous. Pada kesemtapan ini proses tersebut hanya berupa count douwn dari 20 sampai 0 dengan interval 1000 milisecond atau setara dengan 1 detik.

Selama proses AsyncTask berlangsung,   publishProgress(i);  mengirim data i ke langkah onProgressUpdate(progress...) .

Selanjutnya, kita perlu menampilkan data mengenai sejauh mana proses AsyncTask tersebut berlangsung dengan kode seperti di bawah ini:

Selanjutnya, kita mengisi TextView dengan teks “selesai” yang diambil dari doInBackground() melalui argumen s.

Terakhir, kita eksekusi AsyncTask ketika tombol yang kita buat diklik dengan kode berikut:

Kode lengkap MainActivity.java adalah seperti di bawah ini:

Hasil eksekusi project ini bisa dilihat pada gambar di bawah ini:

Cara Menggunakan AsyncTask di Android
Cara Menggunakan AsyncTask di Android

Demikian cara menggunakan AsyncTask di Android.

Pencarian Terkait:

  • cara pass parameter di asynctask

Tinggalkan Balasan