PENGENALAN ASYNCTASK DAN ASYNCTASKLOADER PADA ANDROID STUDIO
PENGENALAN ASYNCTASK DAN ASYNCTASKLOADER PADA ANDROID STUDIO
1.9 AsyncTask
Gunakan kelas AsyncTask untuk mengimplementasikan tugas asinkron yang berjalan lama di thread pekerja. (Thread pekerja adalah thread yang bukan thread utama atau thread UI.) AsyncTask memungkinkan Anda menjalankan operasi latar belakang dan mempublikasikan hasil di thread UI tanpa memanipulasi thread atau penangan.
Bila AsyncTask dieksekusi, maka akan melalui empat langkah:
- onPreExecute( ) dipanggil di thread UI sebelum tugas dieksekusi. Langkah ini biasanya digunakan untuk mempersiapkan tugas, misalnya dengan menampilkan bilah kemajuan di UI.
- doInBackground( Params. . . ) dipanggil pada thread latar belakang segera setelah onPreExecute( ) selesai. 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.
- 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.
- onPostExecute( Result) berjalan di thread UI setelah komputasi latar belakang selesai.
Tugas latar belakang biasanya digunakan untuk memuat data seperti laporan prakiraan cuaca atau ulasan film. Pemuatan data bisa jadi banyak menggunakan memori, dan Anda ingin data tersedia sekalipun jika konfigurasi perangkat berubah. Untuk situasi ini, gunakan loader, yang berupa rangkaian kelas yang memfasilitasi pemuatan data ke dalam aktivitas.
Loader
Loader menggunakan kelas LoaderManager untuk mengelola satu atau beberapa loader. LoaderManager menyertakan serangkaian callback bila loader telah dibuat, bila pemuatan datanya selesai, dan bila disetel ulang. Memulai loader
Gunakan kelas LoaderManager untuk mengelola satu atau beberapa instance Loader dalam aktivitas atau fragmen.
Gunakan initLoader( ) untuk melakukan inisialisasi dan mengaktifkannya. Biasanya, Anda melakukan ini dalam metode onCreate( ) aktivitas. Misalnya:
// Prepare the loader. Either reconnect with an existing one,
// or start a new one.getLoaderManager( ) . initLoader( 0, null, this) ;
Jika Anda menggunakan Pustaka Dukungan, buat panggilan ini menggunakan getSupportLoaderManager( ) sebagai ganti
getLoaderManager( ) . Misalnya:
getSupportLoaderManager( ) . initLoader( 0, null, this) ;
Metode initLoader( ) memerlukan tiga parameter:
- ID unik yang mengidentifikasi loader. ID ini bisa berupa apa saja yang Anda inginkan.
- Argumen opsional yang disediakan ke loader saat pembuatan, dalam bentuk Bundle. Jika loader sudah ada, parameter ini akan diabaikan.
- Implementasi LoaderCallbacks , yang dipanggil oleh LoaderManager untuk melaporkan kejadian loader. Dalam contoh ini, kelas lokal mengimplementasikan antarmuka LoaderManager. LoaderCallbacks , sehingga meneruskan referensi ke dirinya sendiri, this .
Panggilan initLoader( ) memiliki dua kemungkinan hasil:
- Jika loader yang ditetapkan melalui ID sudah ada, maka loader yang dibuat terakhir menggunakan ID itu akan digunakan kembali.
- Jika loader yang ditetapkan melalui ID tidak ada, initLoader( ) akan memicu metode onCreateLoader) . Di sinilah Anda mengimplementasikan kode untuk membuat instance dan mengembalikan loader baru.
Catatan:Bila initLoader( ) membuat loader atau menggunakan kembali loader yang ada, implementasi
LoaderCallbacks yang diberikan akan dikaitkan dengan loader dan dipanggil bila keadaan loader berubah. Jika loader yang diminta sudah ada dan sudah menghasilkan data, maka sistem segera memanggil onLoadFinished( ) (selama initLoader( ) ), jadi bersiaplah jika hal ini terjadi.
Masukkan panggilan ke initLoader( ) di onCreate( ) sehingga aktivitas bisa dihubungkan kembali ke loader yang sama bila konfigurasi berubah. Dengan cara itu, loader tidak kehilangan data yang sudah dimuatnya.
1.9.1 AsyncTaskDownload
Pertama jalankan aplikasi IDE Android Studio, caranya :
- Pilih Start → Android Studio
- Pilih →Start a new Android Studio Project
- Pilih →Empty Activity → Next
4. Maka akan Tampil IDE Android Studio, setelah itu Ketikan script pada file activity_main.xml seperti text di bawah ini :Maka akan terlihat seperti ini :5. Maka akan Tampil IDE Android Studio, setelah itu Ketikan script pada file MainActivity.xml seperti text di bawah ini :6. Buat sebuah file xml baru dengan Nama network_security_config.xml di dalam folder /res/xml dan ketikan kode program berikut seperti gambar di bawah ini. 7. Sesuaikan script AndroidManifest.xml seperti di bawah ini untuk mendaftarkan komponen Intent Filter dan mendaftarkan permission akses internet & write external storage yang kita butuhkan
Komentar
Posting Komentar