Anda di halaman 1dari 19

Pemrograman Android: Mengenal Activity dan Siklus

Hidupnya

# Android # Java

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.

Android Web Desktop

Activity Halaman Form

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

Kemudian tentukan minimum SDK yang digunakan.


Selanjutnya, pilih jenis Activity yang akan dibuat. Pilih saja Blank Activity.
Setelah itu, isi nama Activity-nya dengan MainActivity.
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.

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


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;

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();

@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) …


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 ClassAppCompatActivity dan


mengimplementasikan InterfaceView.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 unutk Activity yang


di-finish() secara eksplisit.

Anda mungkin juga menyukai