Jumat, 20 Juli 2018

Aktivitas, Daur Hidup dan Status Aktivitas



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

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

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);
}
@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) {
    // 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
    int columnIndex = cursor.getColumnIndex(Contacts.DISPLAY_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.
    }
}

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

Matematika Metode Numerik

MATEMATIKA METODE NUMERIK        Assalamualaikum.. Selamat beraktifitas dan tetap semangat yaa..! Kembali lagi dengan saya Nana Siti Nur...