Fungsi apakah yang dipanggil pertama kali pada sebuah lifecycle Activity?


Activity
Activity (aktivitas) adalah sebuah komponen aplikasi yang menyediakan layar yang digunakan pengguna untuk berinteraksi guna melakukan sesuatu, misalnya memilih nomor ponsel, mengambil foto, mengirim email, atau menampilkan peta.

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, tetapi hanya berubah bentuk. .Activity memiliki siklus hidup (lifecycle) yang merupakan kondisi yang akan dialami saat diciptakan sampai dihancurkan

Tiap Activity (aktivitas) diberi sebuah jendela untuk menggambar antarmuka penggunanya. Satu aplikasi bisa memiliki lebih dari satu Activity, dan setiap Activity memiliki siklus hidup.

Membuat Activity Baru
Saat kita membuat activity baru maka nanti akan ada file java dan xml. Untuk membuat activity baru caranya sangat mudah yaitu :

  • Klik kanan layout yang ada pada folder res
  • pilih new lalu cari activity
  • kemudian pilih empty activity 

  •  Lalu isikan nama activity. Contoh disini di isi dengan menggunakan nama Biodata1. Tekan finish

  •  Sekarang lihat maka sudah ada dua file baru yaitu Biodata1.java dan activity_biodata1.xml.



Siklus Hidup
Siklus hidup aplikasi Android diatur oleh sistem, berdasarkan kebutuhan pengguna, sumber daya yang
tersedia, dan sebagainya.
 

Adapun siklus hidup android yaitu :

No

Method

Keterangan

1

onCreate()

Method ini dipanggil saat activity pertama kali dibuat

2

onStart()

Method ini dipanggil saat sebuah activity tampil ke
pengguna

3

onRestart()

Method ini dipanggil ketika activity yang berjalan pada saat itu dihentikan sementara (paused) dan activity

sebelumnya dijalankan kembali(resume). (Hasil dari

method OnRestart())

4

onFreeze()

Method ini dipanggil ketika activity berada dalam keadaan freeze (tidak merespon) akibat sedang

sibuk mengerjakan tugas tertentu pada sistem

5

onPause()

Method ini dipanggil ketika activity di hentikan sementara (pause) dan berikutnya ketika dijalankan kembali akan berada dalam posisi resume dan

memanggil method OnResume()

6

onStop()

Method ini dipanggil ketika activity tidak lagi tampak
kepada pengguna

7

onRestart()

Method ini dipanggil ketika acitivity dijalankan kembali
setelah state Stop

8

onDestroy()

Method ini dipanggil sebelum activity dihancurkan (destroy) oleh sistem (baik secara manual maupun

untuk kepentingan pelonggaran memori.

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

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.

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.

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="//schemas.android.com/apk/res/android" xmlns:tools="//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.

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("//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 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("//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.

Video yang berhubungan

Postingan terbaru

LIHAT SEMUA