• Uncategorized
  • 0

7.1: Create an AsyncTask

Task 1. Set up the SimpleAsyncTask project

1.1 Create the layout

buat project baru dengan nama SimpleAsyncTask menggunakan template empty activity, kemudian ubah layout menjadi seperti dibawah :

Task 2. Create the AsyncTask subclass

Karena AsyncTask adalah kelas abstrak, Anda perlu menjadikannya subkelas agar dapat menggunakannya.

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 Subclass the AsyncTask

Buat kelas Java baru bernama SimpleAsyncTask yang memperluas AsyncTask, AsyncTask akan perlu memperbarui TextView setelah selesai tertidur. Lalu konstruktor perlu menyertakan TextView, agar dapat diperbarui dalam onPostExecute(). Definisikan variabel anggota mTextView. kemudian Implementasikan konstruktor untuk AsyncTask yang memerlukan TextView dan menyetel mTextView ke yang diteruskan dalam TextView :

2.2 Implement doInBackground()

Tambahkan metode doInBackground() yang diperlukan. Letakkan kursor pada deklarasi kelas yang disorot, tekan Alt + Enter (Option + Enter di Mac) dan pilih metode Implement.

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 Implement onPostExecute()

Saat metode doInBackground() selesai, nilai yang dikembalikan secara otomatis diteruskan ke callback onPostExecute().

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 Implement the method that starts the AsyncTask

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

private TextView mTextView;
 Perbarui TextView untuk menampilkan teks "Napping…" 

3.2 Implement onSaveInstanceState()

Untuk mencegah TextView disetel ulang ke string awalnya, Anda perlu menyimpan statusnya. Sekarang Anda akan mengimplementasikan onSaveInstanceState() untuk mempertahankan konten TextView saat aktivitas secara spontan dimatikan.

Ganti metode onSaveInstanceState() dalam MainActivity untuk mempertahankan teks di dalam TextView saat aktivitas dimatikan

outState.putString(TEXT_STATE, mTextView.getText().toString()); Ambil nilai TextView saat aktivitas dipulihkan dalam metodeonCreate().
// Restore TextView if there is a savedInstanceState
if(savedInstanceState!=null){
  mTextView.setText(savedInstanceState.getString(TEXT_STATE));
}




 
 

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *