Tugas 1. Menambahkan Callback Siklus Hidup ke TwoActivities
1.2 Mengimplementasikan callback ke MainActivity
- Buka java/com.example.android.twoactivities/MainActivity.
- Dalam metode onCreate(), tambahkan pernyataan log berikut:
Log.d(LOG_TAG, "-------"); Log.d(LOG_TAG, "onCreate");
-
Tambahkan metode baru untuk callback onStart(), dengan pernyataan ke log untuk peristiwa tersebut:
@Override public void onStart(){ super.onStart(); Log.d(LOG_TAG, "onStart"); }
Gunakan metode onStart() sebagai template untuk mengimplementasikan callback siklus hidup lainnya:
- onPause()
- onRestart()
- onResume()
- onStop()
- onDestroy()
- Bangun dan jalankan aplikasi Anda.
1.3 Mengimplementasikan callback siklus hidup dalam SecondActivity
- Buka java/com.example.android.twoactivities/SecondActivity.
- Di bagian atas kelas, tambahkan konstanta untuk variabel LOG_TAG:
private static final String LOG_TAG = SecondActivity.class.getSimpleName();
- Tambahkan callback siklus hidup dan pernyataan log ke aktivitas kedua. (Anda juga bisa menyalin dan menempel metode callback dari MainActivity)
- Tambahkan pernyataan log ke metode returnReply(), tepat sebelum metode finish():
Log.d(LOG_TAG, "End SecondActivity");
1.4 Amati log saat aplikasi berjalan
- Jalankan aplikasi Anda.
- Klik Android Monitor di bawah Android Studio untuk membuka Android Monitor.
- Pilih tab logcat.
-
Ketik “Activity” dalam kotak pencarian Android Monitor.
Logcat Android bisa menjadi sangat panjang dan berantakan. Karena variabel LOG_TAG di setiap kelas berisi kata MainActivity atau SecondActivity, kata kunci ini memungkinkan Anda memfilter log hanya untuk hal-hal yang Anda minati.
Tugas 2. Menyimpan dan memulihkan status instance aktivitas.
2.1 Simpan status instance aktivitas dengan onSaveInstanceState()
- Buka java/com.example.android.twoactivities/MainActivity.
- Tambahkan implementasi skeleton onSaveInstanceState() ke aktivitas, atau gunakan Code > Override Methods untuk menyisipkan pengganti kerangka.
@Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); }
Periksa untuk melihat apakah header saat ini terlihat, dan jika demikian letakkan status visibilitas ke dalam bundel status dengan metode putBoolean() dan kunci “reply_visible”.
if (mReplyHeadTextView.getVisibility() == View.VISIBLE) {
outState.putBoolean("reply_visible", true);
}
Dalam pemeriksaan yang sama, tambahkan teks balasan ke dalam bundel.
outState.putString("reply_text", mReplyTextView.getText().toString());
2.2. Memulihkan status instance aktivitas dalam onCreate()
Dalam metode onCreate(), tambahkan tes untuk memastikan bundelnya tidak null.
if (savedInstanceState != null) {
}
- Dalam pemeriksaan tersebut, dapatkan visibilitas saat ini (benar atau salah) dari bundel dengan kunci “reply_visible”
if (savedInstanceState != null) { boolean isVisible = savedInstanceState.getBoolean("reply_visible"); }
-
Tambahkan tes di bawah baris sebelumnya untuk variabel isVisible.
if (isVisible) { }
Jika ada kunci reply_visible” dalam bundel status (maka isVisible benar), kita perlu memulihkan statusnya.
- Dalam tes isVisible, buat header-nya terlihat.
mReplyHeadTextView.setVisibility(View.VISIBLE);
- Dapatkan pesan balasan teks dari bundel dengan kunci “reply_text”, dan setel TextView balasan untuk menunjukkan string tersebut.
mReplyTextView.setText(savedInstanceState.getString("reply_text"));
- Jadikan TextView balasan terlihat juga:
mReplyTextView.setVisibility(View.VISIBLE);
Jalankan aplikasi. Coba putar perangkat atau emulator untuk memastikan bahwa pesan balasan (jika ada) tetap ada di layar setelah aktivitas dibuat ulang.