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 :
<
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 applicatoinDari 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