Pages

Diberdayakan oleh Blogger.

Sabtu, 04 Oktober 2014

menjelaskan Acitvity Life Cycle

 
 
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).

Kemudian tekan tombol back, maka status logcat akan berubah seperti ini :

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.

Daur hidup activity ini menjadi sangat penting ketika kita membuat aplikasi berbasis android, sebab seperti yang kita ketahui android terdiri dari banyak aplikasi & service yang berjalan. Agar tidak terdapat bentrok / untuk menangani kesalahan activity, pemahaman daur hidup (life cycle) inilah yang akan menyelamatkan kita dari bencana-bencana yang tidak diduga tersebut.

1 komentar:

  1. Casinos Near DC, PA - JTGHub
    Find 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

    BalasHapus