Berikut Saya akan coba menjelaskan Acitvity Life Cycle pada aplikasi berbasis Android. Siklus ini penting dipahami oleh para developer Android agar dapat mengetahui state aplikasi yang dikembangkan sejak aplikasi tersebut mulai dijalankan. Berikut Flowchart siklus tersebut.
Activity
adalah suatu kelas yang disediakan oleh Android guna mengimplementasikan siklus
hidup suatu kelas-kelas pada suatu aplikasi. Oleh karena itu, kelas Activity
wajib diturunkan ke kelas-kelas lain pada aplikasi. Jika kalian masih bingung
dengan konsep kelas dan keturunan (inherintance), sebaiknya kalian
belajar mengenai bahasa pemograman Java terlebih dahulu karena sesungguhnya
pemograman Android berangkat dari bahasa pemograman Java. Berikut ilustrasi di
dalam kode pemograman.
Nama
kelas yang kita inisiasi adalah StartingPoint yang berada dalam package
bernama com.thenewboston.travis.Package adalah suatu pembungkus
atau suatu kemasan yang berisi banyak kelas-kelas. Setelah Activity menurunkan
sifat-sifatnya atau dengan kata lain setelah StartingPoint melakukan extends kepada
kelas Activity, maka siklus di atas berlaku pula pada kelas StartingPoint.
Siklus sesungguhnya berisi dengan masing-masing state yang sebenarnya adalah
suatu method yang dimiliki kelas activity.
Berikut penjelasan pada
masing-masing state :
- onCreate()
Method ini
dipanggil ketika activity pertama kali dibuat
- onStart()
Method ini
dipanggil ketika sebuah activity tampil ke pengguna
- onResume()
Method ini
dipanggil ketika activity yang berjalan pada saat itu dihentikan sementara
(paused) dan activity sebelumnya dijalankan kembali(resumed). (Hasil dari
method OnRestart())
- onFreeze()
Method ini
dipanggil ketika activity berada dalam keadaan freeze atau tidak
merespon akibat sedang sibuk mengerjakan task tertentu pada sistem
- onPause()
Method ini
dipanggil ketika activity di hentikan sementara (pause) dan berikutnya ketika
dijalankan kembali akan berada dalam posisi resume dan memanggil method
OnResume()
- onStop()
Method ini
dipanggil ketika activity tidak lagi tampak kepada pengguna
- onDestroy()
Method ini
dipanggil sebelum activity dihancurkan (destroy) oleh sistem (baik secara
manual maupun untuk kepentingan pelonggaran memori
- onRestart()
Method ini
dipanggil ketika acitivity dijalankan kembali setelah state Stop
Pada state
di atas, kita bebas mendefenisikan method-method terkait seperti contoh pada state
start, kita dapat mendefenisikan suatu Splash screen sehingga saat
aplikasi baru dimulai, akan menampilkan suatu gambar terlebih dahulu disertai
dengan musik lalu masuk ke aplikasi utama. Siklus di atas pun berlangsung terus
menerus hingga aplikasi atau activity akhirnya di terminasi.
Konsep
siklus ini penting agar developer tidak mengimplementasikan banyak kelas di
waktu yang bersamaan yang pastinya memakan banyak sekali memori. Ketika kelas
lain aktif, kelas yang tidak berjalan perlu dihentkan sementara agar menghemat
penggunaan memori.
Ini adalah bagian-bagian codenya
Buat class
turunan activity bernama MainActivity :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
package dedepradana.org;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
private String kode = "life cycle : ";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.e(kode, "activity status
: create.");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.e(kode, "activity status
: destroy.");
}
@Override
protected void onPause() {
super.onPause();
Log.e(kode, "activity status
: pause.");
}
@Override
protected void onResume() {
super.onResume();
Log.e(kode, "activity status
: resume.");
}
@Override
protected void onStart() {
super.onStart();
Log.e(kode, "activity status
: start.");
}
@Override
protected void onStop() {
super.onStop();
Log.e(kode, "activity status
: stop.");
}
@Override
protected void onRestart() {
super.onRestart();
Log.e(kode, "activity status
: restart.");
}
}
|
Jalankan aplikasi, kemudian masuk ke mode debug,
perhatikan pada window LogCat. Pada saat pertama aplikasi dijalankan, status
logcat nya adalah seperti berikut :
06-25
05:52:33.058: E/life cycle :(449): activity status : create.06-25
05:52:33.058: E/life cycle :(449): activity status : start.
06-25
05:52:33.088: E/life cycle :(449): activity status : resume.
|
Pada saat kita menekan tombol back, status logcat
berubah seperti berikut :
06-25
05:53:49.878: E/life cycle :(449): activity status : pause.06-25
05:53:50.467: E/life cycle :(449): activity status : stop.
06-25
05:53:50.467: E/life cycle :(449): activity status : destroy.
|
Kemudian kita coba jalankan lagi aplikasinya, lalu
tekan tombol telepon, status logcat akan berubah seperti ini :
06-25
05:55:25.077: E/life cycle :(449): activity status : pause.06-25
05:55:28.468: E/life cycle :(449): activity status : stop.
|
Sistem tidak melakukan penghancuran activity (destroy)
sebab user tidak secara langsung menghentikan aplikasi, melainkan ingin membuka
aplikasi yang lain. Dalam kasus ini (aplikasi telepon).
06-25
05:59:00.337: E/life cycle :(449): activity status : restart.06-25
05:59:00.337: E/life cycle :(449): activity status : start.
06-25
05:59:00.337:E/life cycle :(449): activity status : resume.
|
Saya pikir sekarang teman-teman sudah paham bagaimana
daur hidup activity android bekerja. Pada logcat yang terakhir dapat kita
lihat, sistem melakukan restart -> start -> resume. Ini artinya activity
sebenarnya masi hidup dalam (memory) kemudian sistem melakukan resume activity
untuk mengembalikan activity menampilkan user interface kembali.
Casinos Near DC, PA - JTGHub
BalasHapusFind casinos 군포 출장샵 near DC, PA, 익산 출장마사지 including Harrah's, MGM National Harbor and 충주 출장안마 other casinos 전주 출장마사지 in the United States. Explore our directory 속초 출장안마 for the nearest casino to DC