author Ahmad Muhardian

Pemrograman Android: Mengenal Activity dan Siklus Hidupnya


Android Activity

Aplikasi Android setidaknya memiliki satu atau lebih Activity.

“Bagaimana kalau tidak memiliki Activity?”

Aplikasi itu akan menjadi aplikasi yang hanya bisa berjalan secara background saja dan tidak memiliki tampilan apa-apa.

Alias aplikasi demit 😄.

Pada kesempatan ini kita akan berkenalan dengan Activity dan memahami siklus hidup Activity dalam aplikasi.

Mari kita mulai…

Pengertian Activity

Activity adalah komponen yang dapat dilihat oleh pengguna, sehingga mereka dapat berinteraksi dengan aplikasi.

Bila dibandingkan dengan aplikasi web dan desktop, Activity sama seperti halaman dan form.

AndroidWebDesktop
ActivityHalamanForm

Activity tidak hidup abadi selamanya, dia bisa diciptakan dan dihancurkan.

Activity memiliki siklus hidup (lifecycle) yang merupakan kondisi yang akan dialami saat diciptakan sampai dihancurkan.

Ada beberapa kondisi yang akan dialami oleh Activity seperti yang tergambar pada flow chart berikut ini.

Siklus hidup Activity

Penjelasannya:

  • onCreate() adalah kondisi awal saat Activity baru diciptakan, biasanya dilakukan inisialisasi pada tahapan ini.
  • onStart() adalah saat Activity dimulai
  • onResume() adalah saat Activity dibuka kembali, biasanya dieksekusi setelah onPause()
  • onPause() akan dipanggil saat ada Activity lain yang terbuka.
  • onStop() adalah kondisi saat Activity tidak ditampilkan dilayar (biasanya saat pengguna menekan tombol Home).
  • onRestart() adalah kondisi saat Activity kembali dibuka oleh pengguna.
  • onDestroy() adalah kondisi saat Activity dihancurkan pada memori.

Latihan Activity

Baik! agar lebih paham pembahasan di atas, sekarang kita latihan dengan membuat aplikasi sederhana.

Membuat Proyek Baru

Silahkan buat proyek baru dengan nama LatihanActivity.

Nama Proyek Android

Kemudian tentukan minimum SDK yang digunakan.

Minimum SDK Proyek Android

Selanjutnya, pilih jenis Activity yang akan dibuat. Pilih saja Blank Activity.

Memilih Activity

Setelah itu, isi nama Activity-nya dengan MainActivity.

Memberikan nama Activity

Tunggulah beberapa saat…

Proyek kita sedang dibuat.

Saatnya Coding

Aplikasi ini hanya bertugas menampilkan pesan dengan Toast, untuk menujukan kondisi siklus hidup Activity.

Ada dua tombol yang akan kita buat:

  1. Tombol untuk membuka Activity lain (buka URL dengan browser);
  2. Tombol untuk menutup Activity.

Mari kita buat…

Silahkan buka file activity_main.xml, kemudian kondisikan kodenya seperti ini.

(jangan dicopas, sebaiknya diketik sendiri agar lebih paham)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context="com.petanikode.latihanactivity.MainActivity">

    <Button
        android:id="@+id/btn_start_activity"
        android:text="Buka Activity Lain"
        android:layout_marginBottom="@dimen/activity_vertical_margin"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/btn_close"
        android:text="Tutup Activity"
        android:layout_marginBottom="@dimen/activity_vertical_margin"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

Maka sekarang kita memiliki dua buah tombol.

Layout Aplikasi

Setelah itu, silahkan buka MainActivity.java dan ikuti kode berikut.

 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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package com.petanikode.latihanactivity;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.content.Intent;
import android.net.Uri;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;</b>

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    // deklarasi komponen
    Button btnClose, btnStartActivity;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // inisialisasi komponen
        btnClose = (Button) findViewById(R.id.btn_close);
        btnStartActivity = (Button) findViewById(R.id.btn_start_activity);

        btnClose.setOnClickListener(this);
        btnStartActivity.setOnClickListener(this);

        Toast.makeText(this, "Activity: onCreate()", Toast.LENGTH_SHORT).show();</b>
    }

    @Override
    protected void onStart(){
        super.onStart();

        Toast.makeText(this, "Activity: onStart()", Toast.LENGTH_SHORT).show();
    }

    @Override
    protected void onResume(){
        super.onResume();
        Toast.makeText(this, "Activity: onResume()", Toast.LENGTH_SHORT).show();
    }

    @Override
    protected void onPause(){
        super.onPause();
        Toast.makeText(this, "Activity: onPause()", Toast.LENGTH_SHORT).show();
    }

    @Override
    protected void onStop(){
        super.onStop();
        Toast.makeText(this, "Activity: onStop()", Toast.LENGTH_SHORT).show();
    }


    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.btn_start_activity:
                // buka activity browser
                Intent petanikodeActivity = new Intent(Intent.ACTION_VIEW);
                petanikodeActivity.setData(Uri.parse("http://petanikode.com"));
                startActivity(petanikodeActivity);
                break;
            case R.id.btn_close:
                finish();
                break;
        }
    }
}

Setelah itu, silahkan coba jalankan aplikasi dari menu run–>Run (app)

Demo Aplikasi Latihan Activity

Bedah Kode

Pertama kita membutuhkan beberpa Class untuk melengkapi aplikasi ini:

import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

Lalu ada Class MainActivity yang merupakan turunan dari Class AppCompatActivity dan mengimplementasikan Interface View.OnClickListener untuk meng-handle event onClick().

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    //...
}

Selanjutnya, kita deklarasikan komponen (dua tombol) yang dibutuhkan dalam kode.

// deklarasi komponen
Button btnClose, btnStartActivity;

Dua tombol tersebut, kemudian diinisialisasikan pada method onCreate(). Method ini akan dieksekusi setiap Activity dicitpakan.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // inisialisasi komponen
    btnClose = (Button) findViewById(R.id.btn_close);
    btnStartActivity = (Button) findViewById(R.id.btn_start_activity);

    btnClose.setOnClickListener(this);
    btnStartActivity.setOnClickListener(this);

    Toast.makeText(this, "Activity: onCreate()", Toast.LENGTH_SHORT).show();
}

Dalam inisialisasi komponen, kita membuat objek dari komponen yang ada di activity_main.xml ke java dengan bantuan fungsi findViewById().

btnClose = (Button) findViewById(R.id.btn_close);
btnStartActivity = (Button) findViewById(R.id.btn_start_activity);

Setelah itu, kita bisa tentukan Class yang akan meng-handle komponen tersebut apabila diklik dengan method setOnClickListener().

btnClose.setOnClickListener(this);
btnStartActivity.setOnClickListener(this);

Selanjutnya, kita tampilkan pesan Toast pada method onStart(), onStop(), onPause() dan onResume().

@Override
protected void onStart(){
    super.onStart();
    Toast.makeText(this, "Activity: onStart()", Toast.LENGTH_SHORT).show();
}

@Override
protected void onResume(){
    super.onResume();
    Toast.makeText(this, "Activity: onResume()", Toast.LENGTH_SHORT).show();
}

@Override
protected void onPause(){
    super.onPause();
    Toast.makeText(this, "Activity: onPause()", Toast.LENGTH_SHORT).show();
}

@Override
protected void onStop(){
    super.onStop();
    Toast.makeText(this, "Activity: onStop()", Toast.LENGTH_SHORT).show();
}

Terakhir, kita buat kode untuk meng-handle event onClick() (saat tombol diklik).

@Override
public void onClick(View view) {
    switch (view.getId()){
        case R.id.btn_start_activity:
            // buka activity browser
            Intent petanikodeActivity = new Intent(Intent.ACTION_VIEW);
            petanikodeActivity.setData(Uri.parse("http://petanikode.com"));
            startActivity(petanikodeActivity);
            break;
        case R.id.btn_close:
            finish();
            break;
    }
}

Pada kode di atas, kita menggunakan fungsi finish() untuk mengakhiri Activity.

Maka setelah pemanggilan fungsi finish(), Activity akan menjadi onStop() atau onDestroy() bila sudah terhapus dalam memori.

“Tunggu dulu…mana onDestroy(), kok tidak dibuat coding-nya?”

Terkait dengan onDestroy() saya sudah coba membuatnya di MainActivity, tapi belum bisa dieksekusi.

Menurut beberapa pendapat di StackOverflow, onDestroy() berlaku untuk Activity yang di-finish() secara eksplisit.

Silahkan cek diskusinya:

Apa Selanjutnya?

Kita sudah mengenal dan belajar menggunakan Activity, namun masih banyak yang harus kita pelajari tentang Activity diantaranya:

  • Cara Membuka Activity Lain dengan Membawa Data ke sana.
  • Cara Membuka Implisit dan Eksplisit Activity.
  • Cara Membuka Activity dan Mengembalikan Data dari sana.

Sekian dulu tutorial android kali ini. Sampai jumpa di tutorial berikutnya.

Kalau ada pertanyaan, silahkan sampaikan melalui komentar.

Baca Juga ini

Pemrograman Android di Linux dengan Eclipse

Pemrograman Android di Linux dengan Eclipse

Awalnya Google menggunakan Eclipse sebagai IDE untuk pengembangan aplikasi Android. Kemudian beralih ke Android Studio. Eclipse memang lebih ringan daripada Android Studio, akan tetapi Eclipse sudah tidak lagi didukung oleh Google. Artinya, kalau ada fitur terbaru atau API terbaru dari Android, kita (mungkin) tidak akan bisa menggunakannya di Eclipse. Namun tidak ada salahanya menggunakan Eclipse untuk membuat aplikasi Android. Bila kamu ingin mencobanya, silahkan ikuti langkah-langkah berikut untuk melakukan perisapan.

Pemrograman Android dengan Kotlin Extensions (Lebih Gampang!)

Pemrograman Android dengan Kotlin Extensions (Lebih Gampang!)

Pada tulisan sebelumnya, kita telah berhasil menginstal plugin Kotlin pada Android Studio 2.x, sehingga kita dapat menggunakan kotlin di sana. Pemrograman Android dengan Kotlin memang masih baru. Kemarin saya mencoba membuat kode untuk event listener onClick(), tapi malah error. Aplikasi tidak bisa dibuka dan langsung menutup dirinya. Pesan error pun tidak ditapilkan di Android Studio. Namun, masalah ini sudah terpecahkan oleh Kotlin Extension. Apa itu Kotlin Extensions?Pernah menggunakan fungsi findViewById()?

Pemrograman Android dengan Kotlin pada Android Studio 2.2

Pemrograman Android dengan Kotlin pada Android Studio 2.2

Android Studio yang saya gunakan masih versi 2.2 dan rasanya agak malas mencoba Android Studio yang versi 3.0, karana masih tahap preview. Update (28 Oktober 2017): Android Studio 3.0.0 Sudah Resmi dirilis Tapi saya ingin segera mencoba coding aplikasi android dengan Kotlin. Bagaimana caranya? Gampang. Kita hanya perlu menginstal plugin Kotlin dan melakan sedikit konfigurasi. Mari kita coba… Buat Proyek BaruSilahkan buka Android Studio dan buat proyek baru.

Membuat Aplikasi Android Berbasis HTML 5 dengan Cordova

Membuat Aplikasi Android Berbasis HTML 5 dengan Cordova

Pada tutorial ini, kita akan belajar step-by-step membuat aplikasi android dengan HTML 5, CSS, dan Javascript.

Pemrograman Android: Cara Periksa Konektivitas Internet Pengguna

Pemrograman Android: Cara Periksa Konektivitas Internet Pengguna

Pengembangan aplikasi yang membutuhkan koneksi internet untuk operasinya, perlu melakukan pengecekan terlebih dahulu. Contoh sebuah aplikasi yang menreapkan API Google Maps, membutuhkan koneksi internet untuk menampilkan peta. Akan tetapi, tidak dilakukan pengecekan koneksi internet. Aplikasi pun gagal menampilkan peta dan tampa pesan umpan balik. Pengecekan koneksi internet akan membantu kita membuat umpan balik ke pengguna aplikasi. Misalkan, ketika user ingin menampilkan peta Google Map, periksa terlebih dahulu koneksi internetnya.

Cara Instal Android SDK dan NDK di Linux

Cara Instal Android SDK dan NDK di Linux

Android SDK (Software Development Kit) dan NDK (Nativte Development Kit) adalah dua alat yang harus kita persiapkan untuk membuat aplikasi Android. Android SDK berisi peralatan, API, dan Emulator yang kita butuhkan dalam pengembangan aplikasi Android. Sedangkan, Android NDK memungkinkan kita membuat aplikasi Android dengan bahasa pemrograman C/C++. Pada kesempatan ini kita akan belajar cara menginstal Android SDK dan NDK di Linux. Cara Instal Android SDK di Linux Download Android SDK di website resmi Android Developer: http://developer.