Name                  : SAFIRA AINI

Student ID         : 1202154315

Class                   : SI-39-03

Lesson 7: Background Tasks
7.1: Membuat AsyncTask

Tugas 1: Menyiapkan Proyek SimpleAsyncTask

1.1 Membuat layout

 

Code :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:paddingLeft="@dimen/activity_horizontal_margin"
     android:paddingRight="@dimen/activity_horizontal_margin"
     android:paddingTop="@dimen/activity_vertical_margin"
     android:paddingBottom="@dimen/activity_vertical_margin"
     android:orientation="vertical">
 
     <TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="@string/ready_to_start"
         android:id = "@+id/textView1"
         android:textSize="24sp"/>
 
     <Button
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="@string/start_task"
         android:id="@+id/button"
         android:layout_marginTop="56dp"
         android:onClick="startTask" />
 </LinearLayout>

Tugas 2: Membuat subkelas AsyncTask

2.1 Menjadikan AsyncTask Subkelas

2.2 Mengimplementasikan doInBackground()

Code :

@Override
 protected String doInBackground(Void... voids) {
 
 
     Random r = new Random();
     int n = r.nextInt(11);
 
 
     int s = n * 200;
 
 
     try {
         Thread.sleep(s);
     } catch (InterruptedException e) {
         e.printStackTrace();
     }
 
     // Return a String result
     return "Awake at last after sleeping for " + s + " milliseconds!";
 }


2.3 Mengimplementasikan onPostExecute()

 

Tugas 3: Mengimplementasikan Langkah Terakhir

3.1 Implementasikan metode yang mulai dengan AsyncTask

 

3.2 Mengimplementasikan onSaveInstanceState()

Code :

 package android.example.com.simpleasynctask;
 
 import android.os.Bundle;
 import android.support.v7.app.AppCompatActivity;
 import android.view.View;
 import android.widget.TextView;
 
 
 public class MainActivity extends AppCompatActivity {
 
 
     private static final String TEXT_STATE = "currentText";
 
     private TextView mTextView;
 
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
         //  Initialize mTextView
         mTextView = (TextView) findViewById(R.id.textView1);
 
         // Restore TextView if there is a savedInstanceState
         if(savedInstanceState!=null){
            mTextView.setText(savedInstanceState.getString(TEXT_STATE));
         }
     }
 
  public void startTask (View view) {
         // Put a message in the text view
         mTextView.setText(R.string.napping);
 
         // Start the AsyncTask.
         // The AsyncTask has a callback that will update the text view.
         new SimpleAsyncTask(mTextView).execute();
     }
 
     @Override
     protected void onSaveInstanceState(Bundle outState) {
         super.onSaveInstanceState(outState);
         // Save the state of the TextView
         outState.putString(TEXT_STATE, mTextView.getText().toString());
     }
 }

 

Hasil :

 

7.2: Menghubungkan ke Internet dengan AsyncTask dan AsyncTaskLoader

Tugas 1. Menjelajahi Books API

1.1   Mengirimkan Permintaan API Books

 

1.2   Menganalisis Respons API Books

Tugas 2: Membuat “Who Wrote it?” Aplikasi

2.1 Membuat proyek dan antarmuka pengguna

 

2.2 Menyiapkan Aktivitas Utama

2.3 Membuat AsyncTask kosong

2.4 Membuat kelas NetworkUtils dan membangun URI

2.5 Membuat Permintaan

 

2.6 Menambahkan izin internet

 

2.7 Parse string JSON

 

Tugas 3. Mengimplementasikan praktik terbaik UI

3.1 Menyembunyikan Keyboard dan Memperbarui TextView

3.2 Mengelola status jaringan dan kasus bidang penelusuran kosong

 

Tugas 4. Migrasi ke AsyncTaskLoader

4.1 Membuat AsyncTaskLoader

4.2 Memodifikasi MainActivity

Hasil :

 

7.3: Penerima Siaran

Tugas 1. Menyiapkan Proyek PowerReceiver

1.1   Membuat Proyek

 

1.2 Mendaftarkan Penerima untuk siaran sistem

1.3 Mengimplementasikan onReceive() dalam BroadcastReceiver

 

1.4 Membatasi Penerima Siaran

 

Tugas 2. Mengirimkan dan Menerima Siaran Khusus

2.1 Mendefinisikan string Tindakan Siaran khusus

2.2 Tambahkan Tombol “Send Custom Broadcast”

2.3 Mengimplementasikan sendCustomBroadcast()

2.4 Mendaftarkan Siaran Khusus

2.5 Merespons Siaran Khusus

Hasil :