Pengenalan AsyncTask dan AsyncTaskLoader Pada Android Studio

 

 

AsyncTask

Gunakan kelas AsyncTask untuk mengimplementasikan tugas asinkron yang berjalan lama di Worker Thread/Thread Pekerja. Worker Thread adalah Thread yang bukan Thread UI/Main Thread. AsyncTask memungkinkan anda menjalankan operasi latar belakang dan mempublikasikan hasil di Thread UI tanpa memanipulasi thread.

Bila AsyncTask dieksekusi, maka akan melalui empat langkah :

1.      onPreExecute(), dipanggil di Thread UI sebelum tugas di eksekusi. Langkah ini biasanya digunakan untuk mempersiapkan tugas misalnya dengan menampilkan bilah kemajuan di UI.

2.      doInBackground(Params…), dipanggil pada Background Thread setelah onPreExecute() selesai dijalankan. Langkah ini menjalankan komputasi latar belakang, mengembalikan hasil dan meneruskan hasilnya ke onPostExecute(). Metode doInBackground() juga bisa memanggil publishProgress(Progress…) untuk mempublikasikan satu atau beberapa unit kemajuan.

3.      onProgressUpdate(Progress…), berjalan di Thread UI setelah publishProgress(Progress…) dipanggil. Gunakan onProgressUpdate() untuk melaporkan suatu bentuk kemajuan ke Thread UI sewaktu komputasi latar belakang dieksekusi. Misalnya, anda bisa menggunakannya untuk meneruskan data guna menganimasikan bilah kemajuan atau menampilkan log di bidang teks.

4.      onPostExecute(Result), berjalan di Thread UI setelah komputasi latar belakang selesai.

 

Untuk menggunakan kelas AsyncTask, definisikan subkelas AsyncTask yang menggantikan metode doInBackground(Params…) dan biasanya juga metode onPostExecute(Result). Bagian ini menjelaskan parameter dan penggunaan AsyncTask.

 

Parameter AsyncTask

Di subkelas AsyncTask, sediakan tipe data untuk tiga jenis parameter.

·         “Params” menetapkan tipe parameter yang diteruskan ke doInBackground() sebagai larik.

·         “Progress” menetapkan tipe parameter yang diteruskan ke publishProgress() di Thread latar belakang/Background Thread. Parameter ini selanjutnya diteruskan ke metode onProgressUpdate() di Thread Utama/Main Thread.

·         “Result” menetapkan tipe parameter yang dikembalikan doInBackground(). Parameter ini secara otomatis diteruskan ke onPostExecute() di Thread Utama/Main Thread.

 

AsyncTaskLoader

AsyncTaskLoader adalah loader yang setara dengan AsyncTask. AsyncTaskLoader menyediakan metode, loadInBackground() yang dijalankan di Thread terpisah. Hasil loadInBackground() secara otomatis dikirimkan ke Thread UI/Main Thread, melalui onLoadFinished() LoaderManager callback.

 

Menggunakan AsyncTaskLoader

Untuk mendefinisikan subkelas AsyncTaskLoader, buat kelas yang memperluas AsyncTaskLoader<D>, dalam hal ini D adalah tipe data yang sedang anda muat. Misalnya, AsyncTaskLoader ini akan memuat daftar string :

public static class StringListLoader extends AsyncTaskLoader<List<String>> {}

Berikutnya, implementasikan konstruktor yang cocok dengan implementasi super kelas :

Konstruktor menggunakan konteks aplikasi sebagai argumen dan meneruskannya ke panggilan untuk super().

Jika loader Anda memerlukan informasi tambahan untuk melakukan pemuatan, konstruktor bisa mengambil argumen tambahan. Dalam contoh yang ditampilkan di bawah ini, konstruktor menggunakan sebuah istilah kueri.

public StringListLoader(Context context, String queryString) {

    super(context);

    mQueryString = queryString;

}

Untuk melakukan pemuatan, gunakan metode penggantian loadInBackground(), akibat metode doInBackground() dari AsyncTask. Misalnya :

@Override

public List<String> loadInBackground() {

    List<String> data = new ArrayList<String>;

    //TODO: Load the data from the network or from a database

    return data;

}

 

 

Praktikum

1.      Jalankan IDE android studio

2.      Setelah terbuka , ganti script activity_main.xml seperti gambar berikut :

 


3.      Langkah selanjutnya ganti script MainActivity.java seperti gambar berikut :

 








4.      Buat sebuah file xml baru dengan nama network_security_config.xml di dalam folder/res/xml dan ketikkan script seperti gambar berikut :

 


5.      Sesuaikan script AndroidManifest seperti gambar berikut :

 


 

6.      Hasil

 



7.      File telah terdownload

 


Komentar