Android Fundamentals 2.2 : Activity Lifecycle and State
Alat dan aplikasi yang diperlukan:
- PC/Desktop dengan Sistem Operasi Windows
- Java Development Kit (JDK) versi 11
- Android Studio versi 3.3
Tugas 1: Menambahkan Lifecycle untuk Memanggil Kembali (callback) TwoActivities
1.1
1.2 Mengimplementasikan Callback ke MainActivity
- Buka project TwoActivities di Android Studio, kemudian buka MainActivity.java.
- Pada method onCreate() tambahkan pernyataan log seperti berikut:
Log.d(LOG_TAG, "-------");
Log.d(LOG_TAG, "onCreate");
3. Tambahkan override pada method onStart().
@Override
public void onStart(){
super.onStart();
Log.d(LOG_TAG, "onStart");
}
4. Menggunakan method onStart() sebagai template untuk mengimplementasi onPause() , onRestart() , onResume() , onStop() , dan onDestroy().
5. Jalankan aplikasi.
6. Klik tab Logcat. Tab Logcat akan menampilkan pesan log.
1.3 Mengimplementasikan Callback Lifecycle pada SecondActivity
- Buka file SecondActivity.java.
- Tambahkan konstanta variabel LOG_TAG.
private static final String LOG_TAG = SecondActivity.class.getSimpleName();
3. Tambahkan log statements ke method returnReply() sebelum method finish() .
Log.d(LOG_TAG, "End SecondActivity");
1.4 Mengamati Log Ketika Aplikasi Berjalan
- Jalankan aplikasi.
- Klik tab Logcat.
- Masukkan Activity pada kotak pencarian.
Tugas 2 : Menyimpan dan Memperbaiki Instance State
2.1 Menyimpan Instance Activity dengan onSaveInstanceState()
- Buka MainActivity.java.
- Tambahkan kode berikut.
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}
3. Cek header apakah terlihat , jika ya, letakkan visibility state ke state Bundle dengan method putBoolean() dan key “reply_visible” .
4. Tambahkan kode berikut pada method Bundle.
2.2 Memperbaiki Activity Instance State pada onCreate()
- Tambahkan kode berikut untuk menguji bahwa savedInstanceState tidak null.
// Restore the state.
if (savedInstanceState != null) {
}
2. Tambahkan dalam Bundle kode berikut.
if (savedInstanceState != null) {
boolean isVisible =
savedInstanceState.getBoolean("reply_visible");
}
3. Tambahkan kode berikut di bawah baris kode langkah 2.
4. Dalam isVisible tambahkan kode berikut.
mReplyHeadTextView.setVisibility(View.VISIBLE);
mReplyTextView.setText(savedInstanceState.getString("reply_text"));
mReplyTextView.setVisibility(View.VISIBLE);
5. Jalankan aplikasi. Rotate device untuk memastikan bahwa pesan balasan tetap ada di layar setelah Activity dibuat ulang.
Sumber: