Aktivitas, Daur Hidup dan Status Aktivitas
Assalamualaikum..
Hello sahabat kembali lagi denganku..
jangan bosan yaa mampir ke blogg ku hehehe karena ini info nya lagi-lagi
tentang kasus Android Studio..Tapi tetep bermanfaat kok untuk kalian semua.
okee kali ini saya akan membahas tentang Aktivitas, Daur Hidup dan Status
Aktivitas dalam Android Studio. Pertama-tama, kita akan
membahas tentang Aktivitas terlebih dahulu. oke langsung saja. apasih itu
Aktivitas? baiklah akan saya jelaskan.
Aktivitas
Activity 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. Tiap aktivitas diberi sebuah jendela untuk menggambar antarmuka penggunanya. Jendela ini biasanya mengisi layar, namun mungkin lebih kecil daripada layar dan mengambang diatas jendela lain.
Activity 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. Tiap aktivitas diberi sebuah jendela untuk menggambar antarmuka penggunanya. Jendela ini biasanya mengisi layar, namun mungkin lebih kecil daripada layar dan mengambang diatas jendela lain.
Membuat Aktivitas
Untuk membuat sebuah aktivitas, Anda harus
membuat subkelas Activity (atau subkelasnya yang ada). Dalam
subkelas itu, Anda perlu mengimplementasikan metode-metode callback yang
dipanggil sistem saat aktivitas bertransisi di antara berbagai status daur
hidupnya, misalnya saat aktivitas sedang dibuat, dihentikan, dilanjutkan, atau
dimusnahkan. Dua metode callback terpenting adalah :
a. OnCreate( )
Anda harus mengimplementasikan metode ini.
Sistem memanggilnya saat membuat aktivitas anda. Dalam mengimplementasi, harus
melakukan inisialisasi komponen-komponen esensial aktivitas. Yang terpenting,
inilah tempat anda harus memanggil setContentView() untuk mendefinisikan
layout untuk antarmuka pengguna aktivitas.
b. OnPause( )
Sistem memanggil metode ini sebagai
pertanda pertama bahwa pengguna sedang meninggalkan aktivitas Anda (walau itu
tidak selalu berarti aktivitas sedang dimusnahkan). Inilah biasanya tempat Anda
harus mengikat setiap perubahan yang harus dipertahankan selepas sesi pengguna
saat ini (karena pengguna mungkin tidak kembali).
Anda bisa memulai aktivitas lain dengan memanggil startActivity(), dengan meneruskan sebuah Intent yang menjelaskan aktivitas yang ingin Anda
mulai. Maksud menetapkan aktivitas persis yang ingin Anda mulai atau
menjelaskan tipe aksi yang ingin Anda lakukan (dan sistem akan memilih
aktivitas yang sesuai untuk Anda, yang bahkan bisa berasal dari aplikasi
berbeda). Maksud juga bisa membawa sejumlah kecil data untuk digunakan oleh
aktivitas yang dimulai.
Saat bekerja dalam aplikasi sendiri, Anda nanti akan
sering meluncurkan aktivitas yang dikenal saja. Anda bisa melakukannya dengan
membuat maksud yang mendefinisikan secara eksplisit aktivitas yang ingin Anda
mulai, dengan menggunakan nama kelas. Misalnya, beginilah cara satu aktivitas
memulai aktivitas lain bernama SignInActivity :
Intent intent = new Intent(this, SignInActivity.class);
startActivity(intent);
startActivity(intent);
Akan
tetapi, aplikasi Anda mungkin juga perlu melakukan beberapa aksi, misalnya
mengirim email, pesan teks, atau pembaruan status, dengan menggunakan data dari
aktivitas Anda. Dalam hal ini, aplikasi Anda mungkin tidak memiliki
aktivitasnya sendiri untuk melakukan tindakan tersebut, sehingga Anda bisa
memanfaatkan aktivitas yang disediakan oleh aplikasi lain pada perangkat, yang
bisa melakukan tindakan itu untuk Anda. Misalnya, jika Anda ingin memperbolehkan
pengguna mengirim pesan email, Anda bisa membuat maksud berikut :
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_EMAIL, recipientArray);
startActivity(intent);
intent.putExtra(Intent.EXTRA_EMAIL, recipientArray);
startActivity(intent);
Ekstra EXTRA_EMAIL yang ditambahkan ke maksud adalah
sebuah larik string alamat email yang menjadi tujuan pengiriman email. Bila
aplikasi email merespons maksud ini, aplikasi itu akan membaca larik string
yang disediakan dalam ekstra dan meletakkannya dalam bidang "to" pada
formulir penulisan email. Dalam situasi ini, aktivitas aplikasi email dimulai
dan bila pengguna selesai, aktivitas Anda akan dilanjutkan.
Memulai Aktivitas Agar Berhasil
Dalam hal ini, mulailah aktivitas dengan memanggil startActivityForResult() (sebagai ganti startActivity()). Untuk menerima hasil dari
aktivitas selanjutnya nanti, implementasikan metode callback onActivityResult() . Bila aktivitas selanjutnya
selesai, aktivitas akan mengembalikan hasil dalam Intent ke metode onActivityResult() Anda. Misalnya, mungkin Anda
ingin pengguna mengambil salah satu kontaknya, sehingga aktivitas Anda bisa
melakukan sesuatu dengan informasi dalam kontak itu. Begini caranya membuat
maksud tersebut dan menangani hasilnya :
private void pickContact() {
// Create an intent to "pick" a contact,
as defined by the content provider URI
Intent intent = new Intent(Intent.ACTION_PICK,
Contacts.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT_REQUEST);
// Create an intent to "pick" a contact,
as defined by the content provider URI
Intent intent = new Intent(Intent.ACTION_PICK,
Contacts.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT_REQUEST);
}
@Override
protected void onActivityResult
@Override
protected void onActivityResult
int requestCode, int resultCode, Intent data) {
// If the request went well (OK) and the request was
PICK_CONTACT_REQUEST
if (resultCode == Activity.RESULT_OK && requestCode ==
PICK_CONTACT_REQUEST) {
// If the request went well (OK) and the request was
PICK_CONTACT_REQUEST
if (resultCode == Activity.RESULT_OK && requestCode ==
PICK_CONTACT_REQUEST) {
// Perform a query to the contact's
content provider
for the contact's name
Cursor cursor = getContentResolver().query(data.getData(),
new String[] {Contacts.DISPLAY_NAME}, null, null, null);
if (cursor.moveToFirst())
{ // True if the cursor is not empty
for the contact's name
Cursor cursor = getContentResolver().query(data.getData(),
new String[] {Contacts.DISPLAY_NAME}, null, null, null);
if (cursor.moveToFirst())
{ // True if the cursor is not empty
int columnIndex = cursor.getColumnIndex(Contacts.DISPLAY_NAME);
String name = cursor.getString(columnIndex);
// Do something with the selected contact's name...
String name = cursor.getString(columnIndex);
// Do something with the selected contact's name...
}
}
}
Mematikan Aktivitas
Anda bisa mematikan aktivitas dengan
memanggil metode finish()-nya. Anda juga bisa mematikan aktivitas terpisah
yang sebelumnya Anda mulai dengan memanggil finishActivity().
Daur Hidup
Mengelola daur hidup aktivitas dengan mengimplementasikan
metode-metode callback sangat penting untuk mengembangkan aplikasi yang kuat
dan fleksibel. Daur hidup aktivitas dipengaruhi langsung oleh kaitannya dengan
aktivitas lain, tugasnya, serta back-stack. Terbagi kedalam tiga status. yaitu
:
1. Dilanjutkan
Aktivitas berada di latar depan layar dan mendapatkan
fokus pengguna. (Status ini kadang-kadang disebut juga dengan
"running" (berjalan).)
2. Dihentikan Sementara
Aktivitas lain berada di latar depan dan mendapat
fokus, namun aktivitas ini masih terlihat. Yakni, aktivitas lain terlihat di
atas aplikasi ini dan aktivitas itu setengah transparan atau tidak menuutpi
seluruh layar. Aktivitas yang dihentikan sementara adalah benar-benar hidup
(objek Activity dipertahankan dalam memori, objek itu
memelihara semua informasi status dan anggota, dan tetap dikaitkan dengan
window manager), namun bisa dimatikan oleh sistem dalam situasi memori sangat
rendah.
3. Dihentikan
Aktivitas ditutupi sepenuhnya oleh aktivitas lain
(aktivitas sekarang berada di "latar belakang"). Aktivitas yang
dihentikan juga masih hidup (objek Activity dipertahankan dalam memori, objek itu
menjaga semua informasi status dan anggota, namun tidak dikaitkan dengan
window manager). Akan tetapi, aktivitas tidak lagi terlihat bagi pengguna dan
bisa dimatikan oleh sistem bila memori diperlukan di lain.
Mengimplementasikan Callback Daur Hidup
Saat
bertransisi ke dalam dan ke luar berbagai status yang dijelaskan di atas,
aktivitas diberi tahu melalui berbagai metode callback. Semua metode callback
adalah sangkutan yang bisa Anda ganti untuk melakukan pekerjaan yang sesuai
saat status aktivitas Anda berubah. Aktivitas skeleton berikut menyertakan
setiap metode daur hidup mendasar :
public class ExampleActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// The activity is being created.
}
@Override
protected void onStart() {
super.onStart();
// The activity is about to become visible.
}
@Override
protected void onResume() {
super.onResume();
// The activity has become visible (it is now "resumed").
}
@Override
protected void onPause() {
super.onPause();
// Another activity is taking focus
(this activity is about to be "paused").
}
@Override
protected void onStop() {
super.onStop();
// The activity is no longer visible (it is now "stopped")
}
@Override
protected void onDestroy() {
super.onDestroy();
// The activity is about to be destroyed.
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// The activity is being created.
}
@Override
protected void onStart() {
super.onStart();
// The activity is about to become visible.
}
@Override
protected void onResume() {
super.onResume();
// The activity has become visible (it is now "resumed").
}
@Override
protected void onPause() {
super.onPause();
// Another activity is taking focus
(this activity is about to be "paused").
}
@Override
protected void onStop() {
super.onStop();
// The activity is no longer visible (it is now "stopped")
}
@Override
protected void onDestroy() {
super.onDestroy();
// The activity is about to be destroyed.
}
}
Metode-metode callback daur
hidup yang sama tercantum dalam tabel 1, yang menjelaskan setiap metode
callback secara lebih detail dan menentukan lokasinya masing-masing dalam daur
hidup aktivitas keseluruhan, termasuk apakah sistem bisa mematikan aktivitas
setelah metode callback selesai. Berikut adalah tabel 1.
Metode
|
Keterangan
|
Bisa
dimatikan setelahnya ?
|
Berikutnya
|
OnCreate( )
|
Dipanggil saat aktivitas pertama kali dibuat. Di
sinilah Anda harus melakukan semua persiapan statis normal — membuat
tampilan, mengikat data ke daftar, dan sebagainya. Metode ini diberi sebuah
objek Bundle yang berisi status aktivitas sebelumnya, jika status itu tertangkap
(lihat Menyimpan Status Aktivitas, nanti). Selalu diikuti oleh onStart().
|
Tidak
|
OnStart( )
|
OnRestart( )
|
Dipanggil setelah aktivitas dihentikan, tepat
sebelum dimulai lagi. Selalu diikuti oleh onStart().
|
Tidak
|
OnStart( )
|
OnStart( )
|
Dipanggil tepat sebelum aktivitas menjadi terlihat
bagi pengguna. Diikuti oleh onResume() jika aktivitas maju ke latar
depan, atau onStop() jika menjadi tersembunyi.
|
Tidak
|
OnResume( )
Atau OnStop( ) |
OnResume( )
|
Dipanggil tepat sebelum aktivitas mulai berinteraksi
dengan pengguna. Pada titik ini, aktivitas berada di puncak tumpukan
aktivitas, dengan masukan pengguna menuju kepadanya. Selalu diikuti oleh onPause().
|
Tidak
|
OnPause( )
|
OnPause( )
|
Dipanggil bila sistem akan mulai melanjutkan
aktivitas lain. Metode ini biasanya digunakan untuk menerapkan (commit)
perubahan yang tidak tersimpan pada data persisten, menghentikan animasi dan
hal-hal lain yang mungkin menghabiskan CPU, dan sebagainya. Metode ini harus
melakukan apa saja yang dilakukannya dengan sangat cepat, karena aktivitas
berikutnya tidak akan dilanjutkan hingga aktivitas ini kembali. Diikuti oleh onResume() jika aktivitas kembali ke depan, atau oleh onStop() jika
menjadi tidak terlihat bagi pengguna.
|
Ya
|
OnResume( )
Atau OnStop( ) |
OnStop( )
|
Dipanggil bila aktivitas tidak lagi terlihat bagi
pengguna. Hal ini bisa terjadi karena aktivitas sedang dimusnahkan, atau
karena aktivitas lain (aktivitas yang ada atau yang baru) telah dilanjutkan
dan sedang menutupinya. Diikuti oleh onRestart() jika aktivitas kembali untuk berinteraksi dengan
pengguna, atau oleh onDestroy() jika aktivitas ini akan
menghilang.
|
Ya
|
OnResume( )
Atau OnStop( ) |
OnDestroy( )
|
Dipanggil sebelum aktivitas dimusnahkan. Inilah
panggilan terakhir yang akan diterima aktivitas. Metode ini bisa dipanggil
karena aktivitas selesai (seseorang memanggil finish() padanya), atau karena sistem memusnahkan
sementara instance aktivitas ini untuk menghemat tempat. Anda bisa membedakan
kedua skenario ini dengan metode isFinishing().
|
Ya
|
Tidak Ada
|
Kolom berlabel "Bisa dimatikan setelahnya?"
menunjukkan apakah sistem bisa atau tidak mematikan proses yang menjadi host
aktivitas kapan saja setelah metode kembali, tanpa menjalankan baris
lain pada kode aktivitas. Tiga metode ini ditandai "ya": (onPause(), onStop(), dan onDestroy()). Karena onPause() adalah yang pertama dari tiga, begitu
aktivitas dibuat, onPause() adalah metode terakhir yang dipastikan
akan dipanggil sebelum proses bisa dimatikan—jika sistem harus
memulihkan memori dalam keadaan darurat, maka onStop() dan onDestroy() mungkin tidak dipanggil. Karena itu,
Anda harus menggunakan onPause() untuk menulis data persisten yang
penting (misalnya hasil edit pengguna) ke storage. Akan tetapi, Anda harus
selektif dalam hal informasi yang harus dipertahankan selama onPause(), karena setiap prosedur pemblokiran
dalam metode ini akan memblokir transisi ke aktivitas berikutnya dan
memperlambat pengalaman pengguna.
Metode-metode
yang ditandai "Tidak" dalam kolom Bisa dimatikan melindungi
proses yang menjadi host aktivitas dari dimatikan sejak saat metode dipanggil.
Jadi, aktivitas bisa dimatikan sejak onPause() kembali hingga waktu onResume() dipanggil. Aktivitas tidak akan lagi
bisa dimatikan hingga onPause() dipanggil lagi dan kembali.
Nah.. demikian tutorial yang bisa saya share
untuk kalian semua semoga bermanfaat yaa..
Wassalamualaikum..
Tidak ada komentar:
Posting Komentar