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 :
Leave a Reply