Tutorial Layanan Android: Bagaimana cara menjalankan aplikasi di latar belakang?



Tutorial Layanan Android ini membantu Anda memahami cara melakukan operasi di latar belakang seperti memutar musik, UI tidak terpasang

Seringkali menggunakan beberapa aplikasi pada ponsel cerdas Anda, Anda mungkin ingin berpindah dari satu aplikasi ke aplikasi lainnya tetapi juga memastikan bahwa semua aplikasi Anda tetap aktif di latar belakang. Ini tidak lain adalah layanan yang ditawarkan oleh . Jadi, artikel di Tutorial Layanan Android ini akan membantu Anda memahami cara bekerja dengan Layanan.

Saya akan membahas topik-topik berikut:





Apa itu Layanan Android?

Layanan pada dasarnya adalah sebuah proses. Layanan Android adalah komponen yang berjalan di latar belakang untuk bekerjaoperasi yang berjalan lama tanpa berinteraksi dengan pengguna dan berfungsi bahkan jika aplikasi dimusnahkan.Komponen aplikasi lain dapat memulai layanan dan terus berjalan di latar belakang meskipun Anda beralih ke aplikasi lain.

Selain itu, sebuah komponen dapat mengikat dirinya sendiri ke layanan untuk berinteraksi dengannya dan juga melakukan komunikasi antarproses.



catatan: Android.app.Service adalah subkelas dari kelas ContextWrapper dan layanan Android bukanlah thread atau proses terpisah.

Android- Siklus Hidup Layanan

Siklus hidup Layanan Android dapat memiliki dua bentuk layanan. Siklus hidup layanan mengikuti dua jalur berbeda, yaitu:

  1. Dimulai
  2. Terikat

Dimulai



Sebuah layanan dimulai saat komponen aplikasi memanggil memulai layanan () metode. Setelah dimulai, layanan bisa berjalan di latar belakang tanpa batas waktu, meskipun komponen yang bertanggung jawab untuk memulai telah dimusnahkan. Itu dihentikan dengan menggunakan stopService () metode. Layanan juga dapat menghentikan dirinya sendiri dengan memanggil stopSelf () metode.

Terikat

Layanan terikat ketika komponen aplikasi mengikatnya dengan memanggil bindService () . Layanan terikat menawarkan antarmuka klien-server yang memungkinkan komponen berinteraksi dengan layanan, mengirim permintaan, dan mendapatkan hasil. Ini memproses komunikasi antar proses (IPC). Klien dapat melepaskan layanan dengan memanggil unbindService () metode.

Siklus hidup Layanan Android- Tutorial Layanan Android- Edureka

Pindah ke bagian selanjutnya dari artikel ini di Layanan Android, mari kita bahas perbedaannyametode di bawah kelas layanan.

instal php di windows 10

Tutorial Layanan Android: Metode

Ada beberapa metode yang dapat digunakan untuk melakukan operasi dengan mudah pada aplikasi apa pun. Beberapa dari mereka adalah:

metodeDeskripsi
onStartCommand ()

Metode ini dipanggil ketika komponen lain, seperti misalnya aktivitas, meminta layanan untuk dimulai, dengan memanggil memulai layanan () .

Merupakan tanggung jawab Anda untuk menghentikan layanan saat pekerjaan terkait dilakukan dengan menggunakan stopSelf () atau stopService () metode.

lepaskan ()

Memanggil metode ini saat komponen lain ingin mengikat dengan layanan dengan memanggil bindService () .

Untuk mengimplementasikan ini, Anda harus menyediakan antarmuka yang digunakan klien untuk berkomunikasi dengan layanan. Ini mengembalikan file IBinder obyek. Jika Anda tidak ingin mengizinkan pengikatan, kembalikan batal .

onUnbind ()

Sistem memanggil metode ini ketika semua klien terputus dari antarmuka tertentu yang diterbitkan oleh layanan.

onRebind ()

Memanggil metode ini ketika klien baru terhubung ke layanan setelah sebelumnya diberitahu bahwa semua terputus onUnbind (Intent) .

onCreate ()

Sistem memanggil metode ini saat layanan dibuat pertama kali menggunakan onStartCommand () atau lepaskan () . Diperlukan untuk melakukan pengaturan satu kali.

onDestroy ()

Metode ini dipanggil saat layanan tidak lagi digunakan dan sedang dimusnahkan. Layanan Anda harus menerapkan ini untuk membersihkan sumber daya apa pun seperti utas, pendengar terdaftar, penerima, dll.

Kode kerangka

public class MainActivity memperluas Aktivitas {private TextView textView private BroadcastReceiver receiver = new BroadcastReceiver () {@Override public void onReceive (Konteks konteks, Intent intent) {Bundle bundle = intent.getExtras () if (bundle! = null) {String string = bundle.getString (DownloadService.FILEPATH) int resultCode = bundle.getInt (DownloadService.RESULT) if (resultCode == RESULT_OK) {Toast.makeText (MainActivity.this, 'Download selesai. Download URI:' + string, Toast.LENGTH_LONG) .show () textView.setText ('Download selesai')} lain {Toast.makeText (MainActivity.this, 'Download gagal', Toast.LENGTH_LONG) .show () textView.setText ('Download gagal')}}}} @Override public void onCreate (Bundle storedInstanceState) {super.onCreate (storedInstanceState) setContentView (R.layout.activity_main) textView = (TextView) findViewById (R.id.status)} @Override protected void onResume () {super.onResume ( ) registerReceiver (penerima, IntentFilter baru (DownloadService.NOTIFICATION))} @Override protected void onPause () {super.onPause () unregisterReceiver (receiver)} public void onClick (View view) {Intent intent = new Intent (ini, DownloadService.class) // tambahkan info untuk layanan mana file yang akan diunduh dan di mana menyimpan maksud.putExtra (DownloadService.FILENAME, 'index.html') maksud.putExtra (DownloadService.URL, 'www.edureka.co') startService (maksud) textView.setText ('Layanan dimulai')}}

Dalam contoh ini, Anda dapat melihat metode seperti onCreate () , onResume () , onPause () . Metode ini menyusun struktur Layanan di Android.

Sekarang, menuju ke bagian praktis dari Tutorial Layanan Android ini, mari kita lihatcara membuat layanan dan menanganinya.

Demo

Mari kita lihat cara memutar musik di latar belakang. Untuk melakukan itu, saya akan menggunakan Studio Andriod .

Langkah 1

Buat proyek kosong baru. Beri nama proyek Anda dan klik pada folder Java dan klik Aktifitas utama . Pertama, tambahkan MediaPlayer sehingga Anda dapat mengimpor detail pemain seperti mulai, mengatur putaran, dan sebagainya.

paket com.example.mydemoapplication impor androidx.appcompat.app.AppCompatActivity kelas publik MainActivity memperluas AppCompatActivity {@Override protected void onCreate (Bundle storedInstanceState) {super.onCreate (storedInstanceState) setContreateView (R.layout.activity_main) MediaPlayer (ini, Settings.System.DEFAULT_ALARM_ALERT_URI) player.setLooping (true) player.start ()}}

Catatan: Jika Anda menggunakannya untuk pertama kali, jangan lupa untuk mengaktifkan BIOS. Anda dapat melakukan ini dengan memulai ulang sistem Anda.

Anda harus menambahkan perangkat virtual. Cukup klik Buka pengelola AVD.

Pilih perangkat pilihan Anda dan Anda siap berangkat!

Ini hanya akan berjalan saat layar aktif tetapi untuk membuat aplikasi ini berfungsi bahkan di latar belakang, Anda perlu menambahkan beberapa baris kode lagi di activity_main.xml mengajukan.

Langkah 2

Setelah Anda menjalankan kode yang sesuai, Anda akan dapat menjalankan aplikasi dan memutar musik di latar belakang, yaitu, jika ada aplikasi lain yang dibuka, audio ini masih akan diputar.

Mari kita lihat bagaimana ini bisa dilakukan.

  • Buat kelas lain di folder Java dan beri nama. Di sini, saya menyebutnya ' MyService '.
  • Kelas ini memperluas kelas Service.
  • Setelah Anda memiliki metode kelas Layanan, terapkan metode dengan mengklik alt + Enter.
  • Setelah ini, Anda harus mengganti metode. Jadi, klik kanan pada jendela untuk mendapatkan opsi.
  • Hasilkan metode penggantian, pilih onStartCommand () , dan OnDestroy ().
  • Edit onStartCommand () metode dengan menambahkan kode berikut:
MediaPlayer player = MediaPlayer.create (ini, Settings.System.DEFAULT_ALARM_ALERT_URI) player.setLooping (true) player.start ()

catatan: Hapus kode ini di Aktifitas utama.

  • Ini akan memunculkan kesalahan yang meminta Anda untuk menghapus pernyataan tersebut. Jadi, hapus pernyataan return dan nyatakan MediaPlayer sebagai metode pribadi dan kembali START_STICKY . Ini akan mengembalikan status awal.
  • Menambahkan player.stop () dalam onDestroy () metode.

LANGKAH 3

Pergi ke daging sapi dan pergi ke tata letak, klik android_main.xml untuk mendapatkan file XML aplikasi.

  • Hapus TextView dan ganti dengan LinearLayout dan tambahkan Buttons. Tambahkan kode yang sesuai.
<LinearLayout android:orientasi= 'vertikal' android: layout_width= 'match_parent' android: layout_height= 'wrap_content' android: layout_centerVertical= 'benar' alat:mengabaikan= 'MissingConstraints'><Tombol android:Indo= '@ + id / buttonStart' android:teks= 'Mulai Layanan' android: layout_width= 'wrap_content' android: layout_height= 'match_parent'/><Tombol android:Indo= '@ + id / buttonStop' android:teks= 'Hentikan Layanan' android: layout_width= 'wrap_content' android: layout_height= 'match_parent'/>LinearLayout>
  • Setelah Anda melakukan ini, kembali ke Aktifitas utama kelas dan menambahkan kode yang sesuai untuk menautkan file XML dan MyServiceClass.
paket com.example.newproject import androidx.appcompat.app.AppCompatActivity public class MainActivity memperluas AppCompatActivity mengimplementasikan View.OnClickListener {private Button start, hentikan @Override protected void onCreate (Bundle storedInstanceState) {super.onCreate (storedInstanceState) setContentView (R.laylayout) .activity_main) start = (Tombol) findViewById (R.id.buttonStart) stop = (Tombol) findViewById (R.id.buttonStop) start.setOnClickListener (ini) stop.setOnClickListener (ini)} @Override public void onClick (Tampilan tampilan ) {if (view == start) {startService (new Intent (this, MyServiceClass.class))} else if (view == stop) {stopService (new Intent (this, MyServiceClass.class))}}}

LANGKAH 4

Setelah Anda selesai menautkan kelas, jalankan kodenya.

Catatan: Tambahkan nama kelas Layanan di file AndroidManifiest.xml.

Selanjutnya, jalankan kodenya.

Setelah Anda memulai layanan, layanan akan berjalan di latar belakang meskipun aplikasi lain dibuka. Anda dapat memulai atau menghentikan layanan dengan mengklik tombol.

Ini adalah demo sederhana di mana Anda telah mempelajari cara bekerja dengan Layanan Android.

Jadi dengan ini, kita sampai pada akhir artikel ini tentang 'Tutorial Layanan Android'.Saya harap Anda jelas dengan topik yang dibahas di blog ini.

cara install php windows 10

Sekarang setelah Anda membaca blog Tutorial Layanan Android kami, Anda dapat melihat Edureka untuk memulai pembelajaran Anda dengan cepat.

Punya pertanyaan? Jangan lupa untuk menyebutkannya di komentar blog 'Tutorial Layanan Android' ini. Kita akan kembali kepada kamu.