Monday, 1 August 2016

Mengenal AsyncTask, Pengertian Dan Contoh Penggunaannya Di Android

Apa itu AsyncTask? Setidaknya kalian pasti pernah mendengar kata AsyncTask. Saya dulu waktu pertama kali terjun di dunia kerja agak bingung dengan pengertian AsyncTask dan kegunaannya.


Dalam ulasan artikel kali ini saya akan mencoba menjelaskan AsyncTask itu seperti apa, tapi dengan versi saya (mungkin jika ada kesalahan bisa dikoreksi, saya akan update penjelasannya)

APA ITU ASYNCTASK?


AsyncTask adalah Sebuah class yang disediakan Android untuk proses/operasi pengambilan/pengiriman dalam yang dilakukan secara background.

Saya biasanya bekerja dengan AsyncTask saat mengambil data dari API. Proses pengambilan datanya terjadi di background dan di UI nya hanya menampilkan ProgressDialog. Ketika Semua data sudah di ambil, maka secara bersamaan akan ditampilkan.

Contoh lainnya, saat kita mendownload aplikasi,lagu,video atau apapun dari internet, proses tersebut juga menggunakan AsyncTask di UI hanya menampilkan persentase downloadingnya (1% - 100%).

BAGIAN - BAGIAN ASYNCTASK


Dalam proses AsyncTaskterdapat beberapa method yang digunakan, antara lain :
  1. onPreExecute(), Method ini dipanggil sebelum task dikerjakan, biasanya digunakan untuk inisiasi users.
  2. doInBackground(Void... params), Pada method ini proses thread berjalan, proses pengiriman/pengambilan data terjadi disini. Prosesnya berjalan dibackground. Method ini langsung berjalan setelah onPreExecute() berjalan. Pada proses gunakan publishProgress(params)  untuk mengupdate progressnya sudah sampai mana saja. Tapi ingat, jangan menambahkan ProgressDialog/ProgressBar di method ini. Kalian hanya boleh menambahkan ProgressBar/ProgressDialog di method onProgressUpdate(String... values)
  3. onProgressUpdate(String... values), Method ini digunakan ketika di method doInBackground(Void.. params) telah memanggil method publishProgress(params). Di method ini kalian bisa tampilkan UI untuk pemberitahuan bahwa pengambilan/pengiriman data sedang berlangsung. Kalian bisa gunakan progressBar atau ProgressDialog.
  4. onPostExecute(Void aVoid), Method ini digunakan untuk mengupdate User Interface kalian ketika proses doInBackground(Void... params) telah selesai
Agar bisa kelihatan proses backgroundnya sudah berapa persen, biasanya saya gunakan angka 1-100, 1 baru mulai dan 100 semua proses sudah selesai, dan data sudah bisa ditampilkan. Kodenya dibawah ini.

IMPLEMENTASI


Contoh programnya bisa kalian ikuti step-stepnya sekarang. Pertama buat satu file xml untuk layoutnya beri nama activity_main.xml, ketikan kode dibawah ini :

Kedua, buat satu file java baru beri nama MainActivity.java, ketikan kode dibawah ini :

Itulah beberapa step yang harus kalian ketahui agar paham proses AsyncTask itu seperti apa. Dalam kenyataannya untuk proses AsyncTask pengiriman data atau pengambilan data dari API saya tidak menggunakan cara manual seperti itu, tapi menggunakan library Retrofit

Please post a polite comment and do not post a spam
EmoticonEmoticon