Anda di halaman 1dari 37

Pemrograman Bergerak

ACTIVITY DAN INTENT

Ramaditia D v1.3
Activity
Perbandingan Pemrograman
Android dan Web
No Android Web
1 Activity Halaman Web
2 Intent Tag <a> (anchor) – “href” attribute
Activity
q Activity adalah sebuah komponen untuk menampilkan User Interface (UI) ke
layar Android pengguna dan mengelola interaksi yang ada di dalamnya

q Umumnya, dalam sebuah aplikasi Android terdapat lebih dari satu


activity yang saling terhubung dengan tugas yang berbeda-beda.

q Setiap Activity harus terdaftar di AndroidManifest.xml supaya tidak terjadi


error.

q Contoh Activity: MainActivity.java dan activity_main.xml.


State/Status Activity
State Deskripsi
Running Activity terlihat dan dapat berinteraksi dengan pengguna
Activity masih terlihat, tapi tidak dapat berinteraksi
Paused
dengan pengguna
Stopped Activity sudah tidak terlihat tapi masih ada di memory
Activity sudah tidak terlihat dan dihapus dari memory
Killed
karena kebutuhan memory atau method finish() dipanggil.
Contoh
State Paused
Activity
Lifecycle
Activity memiliki daur hidup
(lifecycle) dalam
sebuah stack pada virtual
sandbox yang disiapkan
oleh Dalvik Virtual
Machine (DVM) atau Android
Runtime (ART) yang bersifat last
in first out.

Sumber:
https://developer.android.com/reference/and
roid/app/Activity
Lifecycle Callbacks Method
1. onCreate(), dipanggil saat activity pertama kali dibuat
2. onStart(), dipanggil saat sebuah activity tampil ke pengguna, namun belum bisa berinteraksi.
3. onResume(), dipanggil ketika activity tampil ke pengguna dan telah bisa berinteraksi, dan
activity sebelumnya dijalankan kembali (resume). (Hasil dari method OnRestart())
4. onPause(), dipanggil ketika activity di hentikan sementara (pause) dan berikutnya ketika
dijalankan kembali akan berada dalam posisi resume dan memanggil method OnResume().
5. onStop(), dipanggil ketika activity tidak lagi tampak kepada pengguna
6. onRestart(), dipanggil ketika acitivity dijalankan kembali setelah state Stop
7. onDestroy(), dipanggil sebelum activity dihancurkan (destroy) oleh sistem (baik secara
manual maupun untuk kepentingan pelonggaran memori.
Android Components: Activities
class MyApp : AppCompatActivity() { Called when the Activity
is created the first time.

override fun onCreate() { ... }


override fun onPause() { ... } Called when the Activity
is partially visible.
override fun onStop() { ... }
override fun onDestroy(){ ... }
Called when the Activity
... is no longer visible.

}
Called when the Activity
is dismissed.

9
Konsep Last In, First Out (LIFO)
Saving Activity State
q Ketika sebuah activity mengalami pause kemudian resume, maka state dari
sebuah activity tersebut dapat terjaga. Karena obyek activity masih tersimpan
di memory sehingga dapat dikembalikan state-nya.
q Jika sistem menghancurkan activity untuk keperluan memori misalnya karena
memori habis, maka obyek activity dihancurkan. Alhasil, ketika activity ingin
ditampilkan kembali diperlukan proses re-create activity yang dihancurkan
tadi.
q Proses penghancuran activity dapat juga terjadi ketika terdapat perubahan
konfigurasi seperti perubahan orientasi layar (portrait-landscape)
q Di sinilah metode onSaveInstanceState() digunakan.
Intent
Perbandingan Pemrograman
Android dan Web
No Android Web
1 Activity Halaman Web
2 Intent Tag <a> (anchor) – “href” attribute
Intent
q Mekanisme untuk melakukan sebuah action dan komunikasi antar komponen aplikasi
misal activity, services, dan broadcast receiver.
q Intent menghubungkan satu activity ke activity yang lain, baik untuk app yang sama maupun
app yang berbeda. Intent juga digunakan untuk notifikasi event misalnya SD card
dimasukkan, SMS masuk dan lain-lain.
Bentuk Intent (1)
q Explicit Intent à Adalah tipe Intent yang digunakan untuk menjalankan komponen dari
dalam sebuah aplikasi. Explicit intent bekerja dengan menggunakan nama kelas yang dituju
(spesifik).

LOGIN Welcome Marco!


marco
Activity1

Activity2
PASSWORD
**********

Login Intent
Login
Contoh Kode Explicit Intent
1. Val loginIntent = Intent(this, Activity2::class.java);
2. startActivity(loginIntent);

LOGIN Welcome Marco!


marco
Activity1

Activity2
PASSWORD
**********

Login Intent
Login
Bentuk Intent (2)
q Implicit Intent à Adalah tipe intent yang tidak memerlukan detail nama kelas yang ingin
diaktifkan. Model ini memungkinkan komponen dari aplikasi lain bisa merespon request intent
yang dijalankan.

Activity2
Multiple choices

}
might be available
Activity1

to the user!
Intent-
View Filters
Implicit Intent

Activity2
Contoh Lain
Implicit Intent
Proses Implicit
Intent
Contoh Misalkan menggunakan action
ACTION_DIAL

1) Aplikasi kita menjalankan intent untuk ACTION_DIAL melalui startActivity().


2) Sistem Android akan melakukan seleksi terhadap semua aplikasi yang memiliki
kemampuan untuk menangani action tersebut (berdasarkan intent filter di
file AndroidManifest.xml) dan
menampilkan opsi aplikasi-aplikasinya. Pengguna memilih salah satu opsi
aplikasi dan kemudian sistem Android akan me-routing ke activity pada
aplikasi yang dipilih yang memiliki intent-filter untuk aksi ACTION_DIAL.
3) Aplikasi yang dipilih pun muncul di layar dengan nomor telepon yang sudah
diatur.
Main Intent Parameter

https://developer.android.com/reference/android/content/Intent#intent-structure
Intent Actions
Mengirim/Menerima
Data dengan Intent
Fungsi Mengirim dan Menerima Data
q Fungsi putExtra(key, value) digunakan untuk menambahkan data di dalam Intent dengan
bentuk key-value

q Fungsi intent.getFooExtra(key) digunakan untuk mengambil data berdasarkan key. Dengan


“Foo” adalah tipe data dari dari data yang dikirim.

q Pembuatan konstanta diperlukan supaya tidak salah dalam menuliskan key.


Kode di Activity 1

Intent Extra
Mengirim Data

Intent Extra

https://developer.android.com/reference/android/content/Intent#putExtra(java.lang.String,
%20java.lang.String)
Menerima Data
Intent Extra

Kode pada
Activity2
Parcelable
q Parcelable adalah suatu interface yang
memungkinkan kita melakukan
pengiriman satu objek sekaligus di
dalam Intent.

q Parcelize adalah plugin khusus untuk


bahasa Kotlin yang dapat digunakan
untuk membuat implementasi
Parcelable secara otomatis.
Latihan
Membuat
Activity dan
Intent
Referensi
q Official Android Developer Documentation: https://developer.android.com/
q Imaduddin, Ahmad dan Sidiq Permana. 2017. Menjadi Android Developer Expert. Bandung:
PT.Presentologics.

Anda mungkin juga menyukai