Single post

7.1: Create an AsyncTask

Task 1. Set up the SimpleAsyncTask project

1.1 Membuat layout

Dalam praktik ini Anda akan belajar:

  • Menambahkan AsyncTask ke aplikasi untuk menjalankan tugas di latar belakang, di luar thread UI.
  • Mengidentifikasi dan memahami manfaat dan kekurangan menggunakan AsyncTask untuk tugas latar belakang.

Buat proyek baru bernama SimpleAsyncTask menggunakan template Empty Activity (terima default untuk opsi lainnya)

Membuat Design layout

Tambahkan elemen UI penting berikut ke layout untuk MainActivity

Ubah tampilan root RelativeLayout ke LinearLayout

Task 2. Create the AsyncTask subclass

AsyncTask akan mengeksekusi tugas latar belakang sederhana, yaitu tertidur dengan durasi acak. Dalam aplikasi sesungguhnya, tugas latar belakang dapat melakukan semua jenis pekerjaan mulai dari membuat kueri database hingga menghubungkan ke internet, menghitung gerakan GO berikutnya agar Anda bisa mengalahkan pemenang GO saat ini.

AsyncTask memiliki metode berikut untuk melakukan pekerjaan dari thread utama:

  • onPreExecute(): Metode ini menjalankan thread UI, dan digunakan untuk menyiapkan tugas Anda (seperti menampilkan bilah kemajuan).
  • doInBackground(): Di sinilah tempat Anda mengimplementasikan kode untuk mengeksekusi pekerjaan yang akan dilakukan pada thread terpisah.
  • onProgressUpdate(): Ini akan dipanggil pada thread UI dan digunakan untuk memperbarui kemajuan dalam UI (seperti mengisi bilah kemajuan)
  • onPostExecute(): Lagi pada thread UI, ini akan digunakan untuk memperbarui hasil ke UI setelah AsyncTask telah selesai dimuat.

2.1 Menjadikan AsyncTask Subkelas

Buat kelas Java baru bernama SimpleAsyncTask yang memperluas AsyncTask

Membuat String sebagai tipe hasil karena Anda akan memperbarui TextView dengan string saat AsyncTask telah menyelesaikan eksekusi.

Implementasikan konstruktor untuk AsyncTask yang memerlukan TextView dan menyetel mTextView ke yang diteruskan dalam TextView

2.2 Mengimplementasikan doInBackground()

Lalu, Tambahkan metode doInBackground()

Implementasikan doInBackground() ke:

  • Buat integer acak antara 0 dan 10
  • Kalikan jumlahnya dengan 200
  • Buat thread saat ini agar tertidur. (Gunakan Thread.sleep()) dalam blok try/catch.
  • Kembalikan String “Awake at last after xx milliseconds” (xx adalah jumlah milidetik saat aplikasi tertidur).

2.3 Mengimplementasikan onPostExecute()

Saat metode doInBackground() selesai, nilai yang dikembalikan secara otomatis diteruskan ke callback onPostExecute(). kemudian Implementasikan onPostExecute() untuk mengambil argumen String (yang Anda definisikan dalam parameter ketiga AsyncTask dan yang metode doInBackground()kembalikan) dan tampilkan string tersebut dalam TextView

Task 3. Implement the final steps

3.1 Implementasikan metode yang mulai dengan AsyncTask

Aplikasi Anda sekarang memiliki AsyncTask yang melakukan pekerjaan di latar belakang (atau akan melakukannya jika Anda tidak memanggil sleep() sebagai pekerjaan yang disimulasi.) Anda sekarang bisa mengimplementasikan metode yang dipanggil saat tombol Start Task diklik, untuk memicu tugas latar belakang.

Dalam file MainActivity.java file, tambahkan variabel anggota untuk menyimpan TextView.

Tambahkan kode ke metode startTask() untuk membuat instance SimpleAsyncTask, meneruskan TextView mTextView ke konstruktor

Perbarui TextView untuk menampilkan teks

3.2 Mengimplementasikan onSaveInstanceState()

Jalankan aplikasi dan klik tombol Start Task

Ganti metode onSaveInstanceState() dalam MainActivity untuk mempertahankan teks di dalam TextView saat aktivitas dimusnahkan dan Ambil nilai TextView saat aktivitas dipulihkan dalam metodeonCreate()

 

 

 

 

 

 

 

 

 

LEAVE A COMMENT

theme by teslathemes