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
Posting Komentar