AsynTask

Tugas 1: Menyiapkan Proyek SimpleAsyncTask
UI SimpleAsyncTask cukup mudah. UI ini berisi tombol yang meluncurkan AsyncTask, dan TextView yang menampilkan status aplikasi.

1.1 Membuat layout

Buat proyek baru bernama SimpleAsyncTask menggunakan template Empty Activity (terima default untuk opsi lainnya).
Ubah tampilan root RelativeLayout ke LinearLayout.

Catatan: Anda bisa menyetel tinggi dan lebar layout setiap tampilan ke ukuran apa pun, selama tampilan pada layar tidak tergantung pada ukuran layar (menggunakan wrap_content memastikan bahwa hal ini terjadi).
Atribut onClick untuk tombol akan disorot dengan warna kuning, karena metode startTask() belum diimplementasikan di MainActivity. Letakkan kursor pada teks yang disorot, tekan Alt + Enter (Option + Enter di Mac) dan pilih Create ‘startTask(View) dalam ‘MainActivity’ untuk membuat stub metode dalam MainActivity.

Membuat subkelas AsyncTask
Karena AsyncTask adalah kelas abstrak, Anda perlu menjadikannya subkelas agar dapat menggunakannya. Dalam contoh ini, 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.

Menjadikan AsyncTask Subkelas
Dalam implementasi AsyncTask pertama, subkelas AsyncTask akan menjadi sangat sederhana. Subkelas ini tidak memerlukan parameter kueri atau memublikasikan kemajuannya. Anda hanya perlu menggunakan metode doInBackground() and onPostExecute().
Buat kelas Java baru bernama SimpleAsyncTask yang memperluas AsyncTask dan yang memerlukan tiga parameter tipe generik:
Kosong untuk parameternya karena AsyncTask ini tidak memerlukan masukan apa pun.
Kosong untuk tipe kemajuan, karena kemajuan tidak dipublikasikan.
String sebagai tipe hasil karena Anda akan memperbarui TextView dengan string saat AsyncTask telah menyelesaikan eksekusi.

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

Mengimplementasikan Langkah Terakhir

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.
private TextView mTextView;
Dalam metode onCreate(), inisialisasi mTextView ke TextView dalam UI.
Tambahkan kode ke metode startTask() untuk membuat instance SimpleAsyncTask, meneruskan TextView mTextView ke konstruktor.
Panggil execute() pada instance SimpleAsyncTask tersebut.

Mengimplementasikan onSaveInstanceState()
Jalankan aplikasi dan klik tombol Start Task. Berapa lama aplikasi tertidur?
Klik tombol Start Task lagi, dan saat aplikasi tertidur, putar perangkat. Jika tugas latar belakang selesai sebelum Anda bisa memutar ponsel, coba lagi. Atau, Anda bisa memperbarui kode dan membuatnya tertidur untuk jangka waktu yang lebih lama.