Pertanyaan terkait Layanan latar depan android

Saya membuat layanan yang berjalan konstan di Android jadi menurut saya layanan latar depan adalah pilihan terbaik. Saya memiliki beberapa pertanyaan umum mengenai layanan latar depan di Android saat saya akan mengimplementasikannya. Google dokumen tidak membantu saya.

  1. Kapan layanan latar depan dapat dimatikan?
  2. Apakah kita perlu mendefinisikan layanan latar depan sebagai START_STICKY?
  3. Apakah kita perlu me-restart layanan latar depan di Android BOOT atau layanan tersebut dimulai secara otomatis.
  4. Berapa banyak layanan latar depan yang dapat kita mulai dari aplikasi yang sama dalam satu waktu. Saya telah membaca dengan sangat patuh di Google Docs bahwa kita dapat menominasikan 3 layanan latar depan sekaligus, apa artinya?
  5. Seperti namanya, apakah layanan latar depan mengganggu thread utama atau UI?

Salam Utsav.


person Utsav Gupta    schedule 02.09.2014    source sumber
comment
Periksa ini.. ini mungkin memberi Anda informasi lebih lanjut. commonsware.com/blog/2013/07/ 30/   -  person User12111111    schedule 02.09.2014


Jawaban (1)


 1. When a foreground service can be killed?

Proses yang menghosting layanan latar depan dianggap sebagai Proses latar depan. Proses seperti ini dianggap paling penting dan dihentikan terakhir. Dari dokumen:

Secara umum, hanya sedikit proses latar depan yang ada pada waktu tertentu. Mereka dibunuh hanya sebagai upaya terakhir—jika ingatan mereka sangat rendah sehingga mereka tidak dapat terus berjalan. Umumnya, pada saat itu, perangkat telah mencapai status paging memori, jadi mematikan beberapa proses latar depan diperlukan untuk menjaga antarmuka pengguna tetap responsif.

2. Do we need to define foreground service as START_STICKY?

Tergantung pada tugas yang Anda lakukan. Karena Anda baru saja mengatakan layanan berjalan terus-menerus, saya yakin Anda mungkin membutuhkannya. Bendera tersebut memiliki arti yang sama untuk layanan normal dan latar depan. Tanda START_STICKY menunjukkan, jika layanan dimulai ulang setelah proses hostingnya terhenti, onStartCommand layanan akan dipanggil dengan maksud nol. Ini adalah cara untuk membuat layanan menyadari bahwa layanan telah dimulai ulang.

3. Do we need to restart foreground services on android BOOt or they automatically start.

Tidak. Anda perlu mendaftarkan penerima siaran untuk Intent.ACTION_BOOT_COMPLETED dan memulai layanan secara manual dari onReceive.

4. How many foreground services can we start from the same application at a time. 
I have read somewhere in very obsequious manner in google docs that we can nominate 3 foreground service at a time, what does that mean?

Tidak yakin, alangkah baiknya jika Anda bisa membagikan sumbernya. Apakah Anda memiliki 1 atau 3 layanan latar depan, proses hostingnya dianggap sebagai proses latar depan. Menghosting beberapa layanan latar depan menghasilkan banyak pemberitahuan di bilah status, yang membuat pengguna mengetahui layanan tersebut sedang berjalan dan mengetahui cara menghentikannya. Anda juga dapat memiliki satu layanan latar depan dengan beberapa thread yang menjalankan operasi berbeda.

5. As the name suggests does the foreground service interrupts the main or UI thread?

Seperti dijelaskan di atas, layanan latar depan menjadikan proses hostingnya sebagai proses latar depan dan pengguna mengetahui layanan tersebut. Selain itu sama sekali tidak ada perbedaan dengan pelayanan normal. Suatu layanan secara default akan berjalan di thread UI, operasi yang berjalan lama harus dijalankan di thread terpisah. Jika perangkat memiliki beberapa prosesor inti, thread mungkin atau mungkin tidak berjalan pada inti yang tersedia secara paralel. Anda dapat membaca blog ini yang ditulis oleh @fadden. Dari blog:

Terkadang orang bertanya-tanya mengapa aplikasi multi-thread mereka tampaknya tidak menggunakan semua core yang tersedia. Hal ini umumnya terjadi karena dua alasan:

  1. Memigrasikan thread antar inti itu mahal, dari segi kinerja;
  2. Mengaktifkan inti CPU itu mahal, dari segi baterai.

P.S. : Layanan yang berjalan terus-menerus selalu dianggap sebagai anti-pola di Android, karena layanan tersebut terus-menerus menggunakan sumber daya sistem sehingga secara tidak langsung memengaruhi aplikasi lain. Jadi jika suatu saat harus menggunakannya, rancanglah dengan hati-hati.

person Manish Mulimani    schedule 06.09.2014
comment
Terima kasih telah membuat jawaban singkat dan jelas. Dan selamat untuk mendapatkan 50 poin :) - person Utsav Gupta; 06.09.2014