Tutorial Perkhidmatan Android: Bagaimana menjalankan aplikasi di latar belakang?



Tutorial Perkhidmatan Android ini membantu anda memahami cara melakukan operasi di latar belakang seperti bermain muzik, tidak mempunyai UI yang terpasang

Selalunya menggunakan banyak aplikasi pada telefon pintar anda, anda mungkin ingin beralih dari satu aplikasi ke aplikasi lain tetapi juga memastikan bahawa semua aplikasi anda tetap aktif di latar belakang. Ini hanyalah perkhidmatan yang ditawarkan oleh . Oleh itu, artikel ini mengenai Tutorial Perkhidmatan Android akan membantu anda memahami cara bekerja dengan Perkhidmatan.

Saya akan membahas topik berikut:





java bagaimana untuk keluar dari program

Apa itu Perkhidmatan Android?

Perkhidmatan pada dasarnya adalah proses. Perkhidmatan Android adalah komponen yang berjalan di latar belakang untuk melakukanoperasi yang lama tanpa berinteraksi dengan pengguna dan ia berfungsi walaupun aplikasi itu dimusnahkan.Komponen aplikasi lain boleh memulakan perkhidmatan dan terus berjalan di latar belakang walaupun anda beralih ke aplikasi lain.

Selain itu, komponen dapat mengikat dirinya dengan perkhidmatan untuk berinteraksi dengannya dan juga melakukan komunikasi antara proses.



Catatan: Perkhidmatan android.app.Service adalah subkelas kelas ContextWrapper dan perkhidmatan Android bukan proses utas atau berasingan.

Kitaran hayat Perkhidmatan Android

Kitaran hidup Perkhidmatan Android boleh mempunyai dua bentuk perkhidmatan. Kitaran hayat perkhidmatan mengikuti dua jalan yang berbeza, iaitu:

  1. Dimulakan
  2. Terikat

Dimulakan



Perkhidmatan dimulakan apabila komponen aplikasi memanggil mulaServis () kaedah. Setelah dimulakan, perkhidmatan dapat berjalan di latar belakang selama-lamanya, walaupun komponen yang bertanggungjawab untuk memulakannya musnah. Ia dihentikan dengan menggunakan perkhidmatan berhenti () kaedah. Perkhidmatan ini juga boleh berhenti dengan memanggil berhentiSelf () kaedah.

Terikat

Perkhidmatan terikat apabila komponen aplikasi mengikatnya dengan memanggil perkhidmatan mengikat () . Perkhidmatan terikat menawarkan antara muka pelanggan-pelayan yang membolehkan komponen berinteraksi dengan perkhidmatan, menghantar permintaan dan, mendapatkan hasil. Ia memproses komunikasi antara proses (IPC). Pelanggan boleh melepaskan perkhidmatan dengan memanggil unbindService () kaedah.

Kitaran hidup Perkhidmatan Android- Tutorial Perkhidmatan Android- Edureka

Melangkah ke bahagian seterusnya artikel ini mengenai Perkhidmatan Android, mari kita bincangkan yang berbezakaedah di bawah kelas perkhidmatan.

Tutorial Perkhidmatan Android: Kaedah

Terdapat beberapa kaedah menggunakan yang mana anda dapat melakukan operasi dengan mudah pada aplikasi apa pun. Sebahagian daripadanya adalah:

KaedahPenerangan
diStartCommand ()

Kaedah ini dipanggil apabila komponen lain, seperti mengatakan suatu aktiviti, meminta perkhidmatan dimulakan, dengan memanggil mulaServis () .

Adalah menjadi tanggungjawab anda untuk menghentikan perkhidmatan apabila kerja yang sesuai dilakukan dengan menggunakan berhentiSelf () atau perkhidmatan berhenti () kaedah.

lepaskan ()

Memanggil kaedah ini apabila komponen lain ingin mengikat dengan perkhidmatan dengan memanggil perkhidmatan mengikat () .

Untuk melaksanakannya, anda mesti menyediakan antara muka yang digunakan pelanggan untuk berkomunikasi dengan perkhidmatan. Ia mengembalikan sebuah IBinder objek. Sekiranya anda tidak mahu membenarkan pengikatan, kembali batal .

onUnbind ()

Sistem memanggil kaedah ini apabila semua pelanggan terputus dari antara muka tertentu yang diterbitkan oleh perkhidmatan.

onRebind ()

Memanggil kaedah ini apabila pelanggan baru disambungkan ke perkhidmatan setelah sebelumnya diberitahu bahawa semua terputus dalam onUnbind (Niat) .

onCreate ()

Sistem memanggil kaedah ini semasa perkhidmatan dibuat pertama kali menggunakan diStartCommand () atau lepaskan () . Ia diperlukan untuk melakukan penyediaan satu kali.

onDestroy ()

Kaedah ini dipanggil apabila perkhidmatan tidak lagi digunakan dan sedang dimusnahkan. Perkhidmatan anda harus melaksanakannya untuk membersihkan sumber-sumber seperti utas, pendengar berdaftar, penerima, dll.

Kod rangka

kelas awam MainActivity memperluas Aktiviti {private TextView textView private BroadcastReceiver receiver = new BroadcastReceiver () {@ Override public void onReceive (Konteks konteks, maksud niat) {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, 'Muat turun selesai. Muat turun URI:' + string, Toast.LENGTH_LONG) .show () textView.setText ('Download selesai')} lain-lain {Toast.makeText (MainActivity.this, 'Download gagal', Toast.LENGTH_LONG) .show () textView.setText ('Muat turun gagal')}}} @Override public void onCreate (Bundle saveInstanceState) {super.onCreate (saveInstanceState) setContentView (R.layout.activity_main) textView = (TextView) findViewById (R.id.status)} @Override dilindungi void onResume () {super.onume () {super.onume registerReceiver (penerima, IntentFilter baru (DownloadService.NOTIFICATION))} @Override dilindungi void onPause () {super.onPause () unregisterReceiver (receiver)} public void onClick (View view) {Intent intent = Intent baru (ini, DownloadService.class) // tambahkan maklumat untuk perkhidmatan fail yang hendak dimuat store intent.putExtra (DownloadService.FILENAME, 'index.html') intent.putExtra (DownloadService.URL, 'www.edureka.co') startService (intent) textView.setText ('Perkhidmatan dimulakan')}}

Dalam contoh ini, anda dapat melihat kaedah seperti onCreate () , onResume () , padaJeda () . Kaedah ini membentuk struktur Perkhidmatan di Android.

Sekarang, sampai ke bahagian praktikal Tutorial Perkhidmatan Android ini, mari kita lihatcara membuat perkhidmatan dan menanganinya.

Demo

Mari lihat cara memainkan muzik di latar belakang. Untuk melakukannya, saya akan menggunakan Studio Andriod .

Langkah 1

Buat projek kosong baru. Namakan projek anda dan klik pada folder Java dan klik pada Aktiviti utama . Pertama, tambah Pemain media supaya anda dapat mengimport butiran pemain seperti permulaan, mengatur gelung dan sebagainya.

pakej com.example.mydemoapplication import androidx.appcompat.app.AppCompatActivity public class MainActivity memperluas AppCompatActivity {@Override dilindungi void onCreate (Bundle saveInstanceState) {super.onCreate (saveInstanceState) setContentView (R.layout.Player_Player.Player.Player.Player.Player.Player.Player.Player.Player_Player). (ini, Settings.System.DEFAULT_ALARM_ALERT_URI) player.setLooping (true) player.start ()}}

Catatan: Sekiranya anda menggunakannya untuk pertama kalinya, jangan lupa untuk mengaktifkan BIOS. Anda boleh melakukan ini dengan memulakan semula sistem anda.

Anda perlu menambah peranti maya. Klik sahaja Buka pengurus AVD.

Pilih peranti pilihan anda dan anda sudah bersedia!

Ini hanya akan berjalan apabila skrin aktif tetapi untuk menjadikan aplikasi ini berfungsi walaupun di latar belakang, anda perlu menambahkan beberapa baris lagi kod di aktiviti_main.xml fail.

Langkah 2

Sebaik sahaja anda menjalankan kod yang sesuai, anda akan dapat menjalankan aplikasi dan dapat memainkan muzik di latar belakang, iaitu, jika ada aplikasi lain yang dibuka, audio ini akan tetap dimainkan.

Mari lihat bagaimana ini dapat dilakukan.

  • Buat kelas lain dalam folder Java dan beri nama. Di sini, saya memanggilnya ' Perkhidmatan Saya '.
  • Kelas ini meluaskan kelas Perkhidmatan.
  • Setelah anda mempunyai kaedah kelas Perkhidmatan, laksanakan kaedah dengan mengklik alt + Masukkan.
  • Selepas ini, anda harus menolak kaedahnya. Jadi, klik kanan pada tetingkap untuk mendapatkan pilihan.
  • Hasilkan kaedah ganti, pilih diStartCommand () , dan OnDestroy ().
  • Edit diStartCommand () kaedah dengan menambahkan kod berikut:
Pemain MediaPlayer = MediaPlayer.create (ini, Settings.System.DEFAULT_ALARM_ALERT_URI) player.setLooping (true) player.start ()

Catatan: Padamkan kod ini di Aktiviti utama.

  • Ini akan menyebabkan ralat meminta anda membuang penyataan tersebut. Oleh itu, keluarkan penyataan pengembalian dan nyatakan MediaPlayer sebagai kaedah peribadi dan kembalikan START_STICKY . Ini akan mengembalikan status permulaan.
  • Tambah pemain. berhenti () di dalam onDestroy () kaedah.

Langkah 3

Pergi ke daging lembu dan pergi ke susun atur, klik pada android_main.xml untuk mendapatkan fail XML aplikasi.

  • Keluarkan TextView dan gantikan dengan LinearLayout dan tambahkan Butang. Tambahkan kod yang sesuai.
<LinearLayout android: orientasi= 'menegak' android: lebar_ susun atur= 'match_parent' android: layout_height= 'bungkus_content' android: layout_centerVertical= 'benar' alatan:abai= 'MissingConstraints'><Butang android:ID= '@ + id / butang Mulakan' android: teks= 'Mula Perkhidmatan' android: lebar_ susun atur= 'bungkus_content' android: layout_height= 'match_parent'/><Butang android:ID= '@ + id / butangHentikan' android: teks= 'Berhenti Perkhidmatan' android: lebar_ susun atur= 'bungkus_content' android: layout_height= 'match_parent'/>LinearLayout>
  • Sebaik sahaja anda melakukan ini, kembali ke Aktiviti utama kelas dan tambahkan kod yang sesuai untuk menghubungkan fail XML dan MyServiceClass.
pakej com.example.newproject import androidx.appcompat.app.AppCompatActivity kelas awam MainActivity meluaskan AppCompatActivity melaksanakan View.OnClickListener {butang peribadi bermula, hentikan @Override dilindungi void onCreate (Bundle saveInstanceState) {super.onCreate (saveInstanceState .activity_main) start = (Button) findViewById (R.id.buttonStart) stop = (Button) findViewById (R.id.buttonStop) start.setOnClickListener (ini) stop.setOnClickListener (ini)} @Override public void onClick (Lihat paparan ) {if (view == start) {startService (Intent baru (ini, MyServiceClass.class))} lain jika (view == stop) {stopService (new Intent (this, MyServiceClass.class))}}}

Langkah 4

Setelah selesai menghubungkan kelas, mari jalankan kodnya.

Catatan: Tambahkan nama kelas Perkhidmatan dalam fail AndroidManifiest.xml.

Seterusnya, mari kita jalankan kodnya.

Sebaik sahaja anda memulakan perkhidmatan, perkhidmatan akan berjalan di latar belakang walaupun aplikasi lain dibuka. Anda boleh memulakan atau menghentikan perkhidmatan dengan mengklik butang.

Ini adalah demo ringkas di mana anda telah belajar bagaimana bekerja dengan Perkhidmatan Android.

algoritma fibonacci c ++

Oleh itu, kita sampai pada akhir artikel ini mengenai 'Tutorial Perkhidmatan Android'.Saya harap anda jelas dengan topik yang dibahas dalam blog ini.

Sekarang setelah anda membaca blog Tutorial Perkhidmatan Android kami, anda boleh melihat Edureka's untuk memulakan pembelajaran anda dengan pantas.

Ada sebarang pertanyaan? Jangan lupa menyebutkannya dalam komen blog 'Tutorial Perkhidmatan Android' ini. Kami akan menghubungi anda.