Apa perbedaan antara layanan dan penerima siaran?


14

Saya terus mendengar tentang layanan dan penerima siaran . Apa perbedaan di antara mereka, dan bagaimana pengaruhnya terhadap operasi ponsel Android saya dari sudut pandang saya?


Anda tahu, alih-alih membuat port pada lapisan TCP, kami selalu membuat penerima siaran untuk menghemat baterai dan banyak pemrosesan .. Ketika beberapa peristiwa terjadi di android .... siaran dikirim dalam telepon ke semua aplikasi .. Dan jika Anda memiliki penerima siaran untuk acara yang ditulis ,,, maka akan dipanggil secara otomatis. Secara teknis peristiwa yang terjadi disebut niat dalam hal android
Rahul Raina

Jawaban:


27

Aplikasi Android memiliki tiga jenis komponen. Secara umum, pengguna tidak perlu tahu tentang mereka: mereka adalah cara bagi pembuat aplikasi untuk memprogram perilaku tertentu ke dalam aplikasi mereka. Tetapi jika Anda mengamati perilaku aplikasi Anda secara dekat seperti dengan task manager, atau jika Anda mengotomatiskan hal-hal dengan aplikasi seperti Tasker, akan sangat membantu untuk memahami bagaimana mereka cocok bersama dalam sistem.

Sebuah aktivitas adalah jenis yang paling akrab komponen: itu adalah jendela Anda dapat melihat: baik full-screen atau dialog berukuran. Suatu aktivitas hanya berjalan saat itu ditampilkan di layar. Setelah Anda meninggalkan aktivitas, Android akan menyimpan aplikasi itu dalam memori siap untuk dimulai lagi, tetapi aktivitas tidak akan berjalan, artinya tidak akan menggunakan baterai atau jaringan. Aplikasi memulai aktivitas menggunakan niat . Maksudnya dapat menentukan secara eksplisit aktivitas mana yang akan dimulai, atau dapat menentukan tindakan yang harus dilakukan (seperti membuka file tertentu). Jika lebih dari satu aktivitas dapat "menangani" maksud, Anda melihat dialog yang meminta Anda untuk memilih satu.

Sebuah layanan adalah komponen aplikasi lain. Setelah komponen lain (mungkin suatu kegiatan, atau layanan lain) telah memulai layanan, itu berjalan di latar belakang sampai berhenti sendiri. Ini berarti bahwa suatu layanan dapat membuat ponsel Anda tetap terjaga (menggunakan kunci bangun ), kehabisan baterai, atau menggunakan banyak data jaringan, tanpa ada yang ditampilkan di layar.

Aplikasi dapat menggunakan layanan untuk melakukan proses jangka panjang di latar belakang, seperti mengunduh file dari server, atau memeriksa email, atau memeriksa lokasi Anda. Meskipun layanan tidak muncul atau berinteraksi dengan Anda secara langsung, mereka tetap muncul di daftar "Running apps". Dari aplikasi Pengaturan , pilih Aplikasi atau Manajer aplikasi , dan kemudian Lari . Anda dapat menghentikan layanan seperti itu, tetapi biasanya tidak perlu. Karena layanan tidak langsung terlihat, Android menganggapnya kurang penting daripada aktivitas, sehingga mereka akan menjadi yang pertama dibunuh ketika ponsel Anda membutuhkan lebih banyak memori.

Penerima siaran adalah jenis komponen ketiga. Seperti layanan, mereka hanya ada di latar belakang dan tidak berinteraksi langsung dengan Anda. Tetapi tidak seperti layanan, mereka tidak bisa tetap berjalan atau melakukan tugas-tugas panjang: mereka ada untuk merespons acara. Dan tidak seperti aktivitas dan layanan, lebih dari satu penerima siaran dapat dimulai dalam sekali jalan.

Komponen menyiarkan maksud, mungkin ke satu aplikasi, tetapi lebih sering tanpa menentukan aplikasi tertentu. Dalam hal ini, maksud biasanya mewakili peristiwa yang terjadi, seperti baterai hampir habis. Sistem menemukan semua penerima siaran yang telah mendaftarkan minat (menggunakan filter maksud ), dan menjalankannya secara bergantian. Setiap penerima siaran dapat langsung bereaksi, misalnya dengan membuat pemberitahuan, atau dapat memulai layanan atau kegiatan untuk mengambil tindakan lebih lanjut. Segera setelah penerima siaran menangani acara, itu dihentikan dan tidak akan berjalan lagi sampai acara serupa lainnya disiarkan.

Contoh dari ketiga komponen yang bekerja bersama adalah ketika Anda mengunduh aplikasi dari Google Play. Pertama, aktivitas Google Play menyediakan antarmuka visual bagi Anda untuk memilih konten yang akan diunduh. Daftar aplikasi mungkin merupakan satu aktivitas; mengklik tombol "instal" memulai aktivitas lain untuk menampilkan dialog konfirmasi atau pembayaran. Saat Anda mengkonfirmasi, aktivitas dialog memulai layanan. Layanan akan terus mengunduh konten bahkan ketika aktivitas telah selesai dan tidak lagi berjalan.

Tapi mungkin ponsel kehilangan koneksi Internet saat aplikasi baru sedang mengunduh. Jika ini terjadi, layanan unduhan Google Play akan mendaftarkan penerima siaran, dengan filter maksud untuk mengatakan bahwa ia tertarik pada perubahan konektivitas jaringan, dan kemudian layanan akan berhenti dengan sendirinya. Ketika telepon terhubung ke Internet, sistem menyiarkan suatu peristiwa. Android akan memulai penerima siaran yang terdaftar di layanan Google Play, bersama dengan penerima siaran lain yang menunggu acara itu. Dalam hal ini, penerima siaran akan memulai layanan unduhan lagi. Layanan akan membuat pemberitahuan saat unduhan berlangsung, dan ketika selesai, ia akan mengirimkan siarannya sendiri untuk memberi tahu aplikasi lain bahwa paket baru telah diinstal, dan kemudian akan berhenti dengan sendirinya. Pada gilirannya, ini akan memulai penerima siaran dari aplikasi lain,

Singkatnya:-

  • Suatu aktivitas mewakili sebuah jendela di layar; suatu layanan melakukan tugas latar belakang yang mungkin sudah berjalan lama; penerima siaran berjalan untuk waktu yang singkat, untuk menangani suatu peristiwa.
  • Ketiganya mulai menggunakan niat, tetapi menggunakan mekanisme yang berbeda. Aplikasi yang diluncurkan harus menyatakan secara eksplisit jenis komponen mana yang akan mulai (dengan memanggil metode yang berbeda di setiap kasus).
  • Ketika suatu aplikasi memulai suatu kegiatan menggunakan niat, itu hanya memulai satu aktivitas (mungkin menampilkan dialog "Selesaikan tindakan menggunakan ..." untuk membiarkan Anda memilih mana), dan hal yang sama berlaku untuk layanan, tetapi menyiarkan maksud dapat memulai beberapa siaran penerima, mungkin dari berbagai aplikasi.
  • Sebagai pengguna, Anda berinteraksi dengan aktivitas secara langsung; Anda tidak berinteraksi dengan layanan, tetapi mereka dapat memperlambat telepon dan menghabiskan sumber daya; Anda tidak berinteraksi dengan penerima siaran, dan karena mereka berumur pendek, Anda tidak perlu khawatir untuk mengaturnya.

Jawaban yang sangat berguna. Saya hanya ingin mengkonfirmasi sesuatu: apa yang terjadi pada aplikasi yang dinonaktifkan oleh pengguna? Apakah Android pernah memulai penerima siaran mereka untuk maksud mereka terdaftar? Atau dapatkah aplikasi yang dinonaktifkan menjalankan layanan mereka di latar belakang? Mengapa tombol Force-Stop tidak diklik untuk aplikasi yang dinonaktifkan bahkan setelah reboot? Jelas bagi saya bahwa kegiatan mereka tidak dapat diluncurkan.
Firelord

@Firelord Jika Anda memiliki pertanyaan baru, Anda harus mempostingnya sebagai pertanyaan baru. Komentar tidak memungkinkan jawaban yang mendalam dan tidak membuat pertanyaan Anda dapat ditemukan oleh pengunjung lain.
Dan Hulme

posting yang bagus, tetapi pada kenyataannya, ada empat komponen. Penyedia Konten tidak ada.
Alexandre Martin
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.