Tugas 1: Menyiapkan Proyek SimpleAsyncTask
-
Buat project baru bernama SimpleAsyncTask
- Ubah tampilan root menjadi LinearLayout
- Ubah tampilan root
RelativeLayout
keLinearLayout
. -
Tambahkan elemen UI penting berikut ke layout untuk MainActivity:
Tampilan Atribut Nilai LinearLayout android:orientation vertical TextView android:text android:id
I am ready to start work! @+id/textView1
Button android:text android:onClick
Start Task startTask
Tugas 2: Membuat subkelas AsyncTask
-
Buat kelas java baru bernama SimpleAsyncTask
-
Definisikan variabel mTextView
- Implementasi konstruktor untuk AsyncTask
- Tambahkan metode
doInBackground()
yang diperlukan. Letakkan kursor pada deklarasi kelas yang disorot, tekan Alt + Enter (Option + Enter di Mac) dan pilih metode Implement. PilihdoInBackground()
dan klik OK:
@Override protected String doInBackground(Void... voids) { return null; }
- Implementasikan doInBackground() menjadi seperti di bawah ini
- 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)
- Implementasikan method onPostExecute() agar dapat mengambil argumen string
Tugas 3: Mengimplementasikan Langkah Terakhir
3.1 Implementasikan metode yang mulai dengan AsyncTask
Pada MainActivity, tambahkan variabel untuk TextView
Dalam method onCreate(), inisialisasi mTextView
Perbarui TextView untuk menampilkan teks “Napping…”
public void startTask (View view) {
// Put a message in the text view
mTextView.setText("Napping... ");
// Start the AsyncTask.
// The AsyncTask has a callback that will update the text view.
new SimpleAsyncTask(mTextView).execute();
}
Jalankan aplikasi dan klik tombol Start Task
-
Ganti metode
onSaveInstanceState()
dalam MainActivity untuk mempertahankan teks di dalam TextView saat aktivitas dimusnahkan:outState.putString(TEXT_STATE, mTextView.getText().toString());
- Ambil nilai TextView saat aktivitas dipulihkan dalam metode
onCreate()
.// Restore TextView if there is a savedInstanceState if(savedInstanceState!=null){ mTextView.setText(savedInstanceState.getString(TEXT_STATE)); }