Pages

Subscribe:

Ads 468x60px

Rabu, 24 April 2013

Daur Hidup Activity


android1 (1) Sebuah Activity biasanya ditampilkan dalam satu screen sebagai bagian komponen dari View (yang terdiri dari komponen UI, widget atau control), yang bertugas melakukan interaksi dengan user untuk melakukan sebuah task tunggal (misalnya, melihat informasi, mengedit data, atau memasukkan data). Sebuah aplikasi Android biasanya memiliki satu atau lebih Activity. Salah satu Activity ditandai sebagai startup activity, yang pada gilirannya memulai activity berikutnya, melalui sebuah intent. Untuk membuat suatu activity, kita melakukan extend terhadap class android.app.Activity, dan melakukan override beberapa method, khususnya method OnCreate(). Kita bisa mengatur konten view dari activity secara bahasa pemrograman java atau juga bisa melalui kode layout file XML Daur hidup sebuah activity diatur melalui method call-back, yang di definisikan pada class dasar Activity : Android_ActivityLifeCycle<




Untuk menggambarkan contoh ini, maka mari kita buat sebuah aplikasi yang diberinama ”Life Cycle“,dengan nama project “ActivityLifeCycle” dan nama package “com.mytest“. Buat sebuah activity yang disebut “LifeCycleActivity” dengan judul “Life Cycle Test“.
package com.mytest;
 
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
 
public class LifeCycleActivity extends Activity {
   private static final String TAG = "LifeCycleActivity: ";
 
   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      Log.d(TAG, "in onCreate()");
   }
 
   @Override
   public void onStart() {
      super.onStart();
      Log.d(TAG, "in onStart()");
   }
 
   @Override
   public void onRestart() {
      super.onRestart();
      Log.d(TAG, "in onReStart()");
   }
 
   @Override
   public void onResume() {
      super.onResume();
      Log.d(TAG, "in onResume()");
   }
 
   @Override
   public void onPause() {
      super.onPause();
      Log.d(TAG, "in onPause()");
   }
 
   @Override
   public void onStop() {
      super.onStop();
      Log.d(TAG, "in onStop()");
   }
 
   @Override
   public void onDestroy() {
      super.onDestroy();
      Log.d(TAG, "in onDestroy()");
   }
 
   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      getMenuInflater().inflate(R.menu.activity_main, menu);
      return true;
   }
}
“LogCat” & DDMS Dalam LifeCycleActivity, kita menggunakan method static Log.d() untuk menuliskan sebuah pesan “debug” ke ”LogCat” view. Ini adalah cara yang umum digunakan untuk membuat pesan log dalam aplikasi android, ketimbang menggunakan System.out.println(). LogCat adalah Android Logging Utility yang memungkinkan sistem dan aplikasi untuk mencatat informasi keluaran pada level-level yang bervariasi. Setiap masukan log memiliki time stamp, sebuah logging level (V – verbose, D – debug, I – informational, W – warning , E – error), Process ID (pid) yang menunjukkan dari mana sebuah log datang, juga sebuah tag, dan pesan logging tersebut. Kita bisa menggunakan bermacam – macam method – method static di dalam class java.Android.Log untuk mencatat sebuah pesan dengan bermacam level log:
public static void v(String tag, String message);  // Verbose
public static void d(String tag, String message);  // Debug
public static void i(String tag, String message);  // Informational
public static void w(String tag, String message);  // Warning
public static void e(String tag, String message);  // Error
  // where tag identifies the applicatoin

Dari tampilan LogCat view, kita bisa memilih logging level tertentu, atau memfilternya berdasarkan pid, tag dan log level. Selain itu, kita juga bisa menggunakan perspektif DDMS (Dalvik Debugging Monitor Server) pada Eclipse IDE (melalui menu “Window” ⇒ Open Perspective⇒ Other ⇒ DDMS). Di perspektif ini, kita bisa mendapatkan informasi tentang semua proses, VM dan thread, kondisi heap space, dan lain -lain Menjalankan Aplikasi Jalankan aplikasi “Life Cycle“, yang telah kita buat dengan klik kanan pada project ⇒ Run As ⇒ Android Application, kemudian amati yang ditampilkan pada ”LogCat” view.
07-14 03:45:48.698: D/LifeCycleActivity:(752): in onCreate()
07-14 03:45:48.698: D/LifeCycleActivity:(752): in onStart()
07-14 03:45:48.708: D/LifeCycleActivity:(752): in onResume()
Kemudian klik button “BACK”, LogCat akan menampilkan sebagai berikut:
07-14 03:46:29.559: D/LifeCycleActivity:(752): in onPause()
07-14 03:46:31.849: D/LifeCycleActivity:(752): in onStop()
07-14 03:46:31.899: D/LifeCycleActivity:(752): in onDestroy()
Kemudian jalankan kembali aplikasi melalui ”App Menu”, Log Cat akan menampilkan sebagai berikut:
07-14 03:47:24.749: D/LifeCycleActivity:(752): in onCreate()
07-14 03:47:24.749: D/LifeCycleActivity:(752): in onStart()
07-14 03:47:24.759: D/LifeCycleActivity:(752): in onResume()
Klik button “HOME” untuk mengirim activity ke background. Perhatikan bahwa onDestroy() tidak akan dipanggil.
07-14 03:48:06.369: D/LifeCycleActivity:(752): in onPause()
07-14 03:48:08.258: D/LifeCycleActivity:(752): in onStop()

07-14 03:49:14.650: D/LifeCycleActivity:(752): in onReStart()
07-14 03:49:14.650: D/LifeCycleActivity:(752): in onStart()
07-14 03:49:14.659: D/LifeCycleActivity:(752): in onResume()
Klik button “PHONE” dan kemudian tekan “BACK”:
07-14 03:51:31.829: D/LifeCycleActivity:(752): in onPause()
07-14 03:51:36.700: D/LifeCycleActivity:(752): in onStop()
07-14 03:51:38.308: D/LifeCycleActivity:(752): in onReStart()

07-14 03:51:38.308: D/LifeCycleActivity:(752): in onStart()
07-14 03:51:38.329: D/LifeCycleActivity:(752): in onResume()
Dari percobaan ini, kita tahu bahwa dengan menekan button “BACK” akan activity akan dihancurkan, namun ketika button “HOME” dan button “PHONE” yang ditekan, activity tidak akan hancur, hanya dihentikan sementara

0 komentar:

Posting Komentar