7.1: Membuat AsyncTask

Tugas 1: Menyiapkan Proyek SimpleAsyncTask

  • Buat project baru bernama SimpleAsyncTask
  • Ubah tampilan root menjadi LinearLayout
  • Ubah tampilan root RelativeLayout ke LinearLayout.
  • 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. Pilih doInBackground() 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

  1. Ganti metode onSaveInstanceState() dalam MainActivity untuk mempertahankan teks di dalam TextView saat aktivitas dimusnahkan:

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

Leave a Reply

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