Apakah aplikasi iOS berjalan di latar belakang?

15

Katakanlah jika saya memasang selusin game dan utilitas di iPhone, dan kemudian juga menginstal aplikasi obrolan seperti WhatsApp, WeChat, Line, lalu

  1. Ketika iPhone dinyalakan kembali, bisakah semua aplikasi ini memulai juga dan menghabiskan waktu prosesor dan sumber daya sistem yang berharga?

  2. Bagaimana jika saya memulai aplikasi, dan kemudian secara eksplisit ketuk tombol Rumah, dan kemudian geser keluar aplikasi (untuk keluar). Bisakah itu atau sebagian masih berjalan di latar belakang sekarang atau nanti?

  3. Karena WhatsApp, WeChat, Line, dan Facebook Messages semuanya memberi tahu saya tentang pesan-pesan baru, sepertinya pesan-pesan itu akan berjalan segera setelah saya me-restart iPhone saya. Apakah mereka menggunakan CPU saya di latar belakang? Juga, tampaknya bahkan jika saya mematikan Refresh Aplikasi di Pengaturan, aplikasi mungkin masih dapat berjalan di latar belakang . Benarkah?

Satu kekhawatiran besar adalah, jika saya menginstal semua variasi Angry Birds, beberapa permainan roulette kasino, dan semua versi Cut the Rope dan tidak repot-repot menghapusnya (ponsel ini memiliki penyimpanan 128GB). Lalu, apakah semua aplikasi ini dapat berjalan pada waktu restart iPhone atau hanya secara acak dan mengambil waktu prosesor dan sumber daya sistem (seperti RAM)?

nonopolaritas
sumber
1
Saya telah memposting panduan yang sangat panjang tentang segala hal yang perlu diketahui di sini, saya harap ini sangat membantu Anda!
owlswipe
Apakah jawaban saya membantu? Tolong terima atau katakan padaku apa yang salah sehingga aku bisa membuatnya lebih baik! :)
owlswipe

Jawaban:

29

Apple memiliki pedoman yang sangat ketat untuk bagaimana — dan kapan — aplikasi dapat berjalan di latar belakang.

Berikut ini adalah satu - satunya skenario di mana aplikasi iOS pihak ketiga dapat menggunakan CPU di latar belakang.

Pengambilan Latar Belakang

Aplikasi apa pun dapat menggunakan "Background Fetch" (alias penyegaran aplikasi Background) untuk mengambil konten di latar belakang selama beberapa detik, sekitar sekali sehari (pada jangka waktu yang diatur oleh iOS, di luar kendali pengembang). Background Fetch membutuhkan baterai dan CPU yang sangat sedikit, dan terutama digunakan oleh aplikasi berita / cuaca / media sosial / email untuk memperbarui feed Anda sehingga ketika Anda membuka aplikasi itu tidak akan sepenuhnya ketinggalan zaman.

Audio, Voice over IP, Bluetooth Communications

Jika aplikasi memutar audio di latar belakang (melalui AirPlay atau melalui speaker ponsel), iOS mengizinkannya untuk berjalan di latar belakang sampai berhenti memainkan musik; jika suatu aplikasi memungkinkan Anda untuk melakukan panggilan telepon berbasis data (seperti Whatsapp atau panggilan Skype) di latar belakang, ia dapat tetap aktif, menggunakan CPU selama panggilan berlangsung; dan jika suatu aplikasi berkomunikasi dengan Bluetooth Accessories (seperti aplikasi Pebble yang berkomunikasi dengan Pebble Smartwatch), ia dapat tetap terjaga secara permanen di latar belakang.

Unduhan kios koran, pemberitahuan jarak jauh

Aplikasi Kios (asalkan disetujui oleh Apple untuk menjadi organisasi berita utama dan muncul di bagian Kios di App Store) diizinkan untuk mengunduh konten baru di latar belakang; aplikasi apa pun (seperti aplikasi The New York Times) yang perlu menampilkan pemberitahuan yang dihasilkan di luar aplikasi (misalnya, melanggar pemberitahuan berita), dapat tetap terjaga di latar belakang untuk menerima pemberitahuan "jarak jauh" tersebut.

Pembaruan Lokasi

Jika Anda mengizinkan aplikasi untuk "selalu" menggunakan lokasi Anda (yaitu di latar belakang), maka aplikasi itu dapat aktif kapan saja di latar belakang. Aplikasi seperti Facebook, Find Friends, dan lainnya menggunakan ini untuk memperbarui informasi terkait lokasi, meskipun aplikasi lain dapat menggunakannya untuk secara diam-diam menggunakannya untuk melakukan tugas di latar belakang (tetapi hanya jika Anda secara khusus mengizinkan mereka mengakses lokasi Anda).


Sebuah kesalahpahaman yang sangat umum adalah bahwa "menggesekkan up" pada sebuah aplikasi untuk membunuhnya berhenti dari beroperasi di latar belakang: ini sepenuhnya tidak benar. Aplikasi yang memiliki salah satu dari tujuh alasan di atas untuk beroperasi di latar belakang dapat beroperasi di latar belakang tanpa peduli Anda "menggeseknya", dan aplikasi yang tidak memiliki salah satu dari tujuh alasan ini tidak dapat beroperasi saat tidak ada di layar bahkan jika Anda tidak membunuh mereka.

Kesalahpahaman lain (yang tampaknya Anda miliki!) Adalah mematikan "Background App Refresh" akan menghentikan aplikasi agar tidak beroperasi di latar belakang; pada kenyataannya, itu hanya menonaktifkan aplikasi dari menggunakan Background Fetch, tetapi ia dapat beroperasi di latar belakang jika ia memiliki salah satu dari enam alasan lainnya terlepas dari toggle Background App Refresh.


Jadi apakah aplikasi yang Anda instal menggunakan CPU, memori, baterai, atau data di latar belakang? Anda dapat dengan mudah mengetahuinya! Buka Settingsdi iPhone Anda, temukan Batterybagian, dan intip. Jika aplikasi menampilkan "Aktivitas Latar Belakang" di bawah namanya, maka itu telah menggunakan CPU di latar belakang; jika tidak, ia tidak melakukan apa pun di latar belakang.

Berikut contoh tangkapan layar:

masukkan deskripsi gambar di sini

Di iPhone ini, Podcast telah beroperasi di latar belakang tetapi tidak ada aplikasi lain yang memilikinya. Masuk ke Pengaturan Baterai adalah cara sederhana untuk mengetahui apakah Angry Birds telah berjalan di latar belakang.


Jadi, untuk menjawab pertanyaan Anda secara langsung:

Ketika iPhone dinyalakan kembali, bisakah semua aplikasi ini memulai juga dan menghabiskan waktu prosesor dan sumber daya sistem yang berharga?

Hanya jika mereka dikonfigurasikan secara khusus untuk berjalan di latar belakang, Anda dapat memeriksa apakah mereka telah melakukan itu di pengaturan Baterai iPhone Anda.

Bagaimana jika saya memulai aplikasi, dan kemudian secara eksplisit ketuk tombol Rumah, dan kemudian geser keluar aplikasi (untuk keluar). Bisakah itu atau sebagian masih berjalan di latar belakang sekarang atau nanti?

Iya. Misalnya, jika Facebook menggunakan layanan lokasi (seperti itu), maka menggesek untuk mematikan aplikasi Facebook tidak akan menghentikannya dari menggunakan lokasi Anda di latar belakang, dan sementara itu menggunakan lokasi Anda, ia dapat melakukan hampir semua tugas lain di latar belakang juga.

Karena WhatsApp, WeChat, Line, dan Facebook Messages semuanya memberi tahu saya tentang pesan-pesan baru, sepertinya pesan-pesan itu akan berjalan segera setelah saya me-restart iPhone saya. Apakah menggunakan CPU saya di latar belakang? Juga, tampaknya bahkan jika saya mematikan Refresh Aplikasi di Pengaturan, aplikasi mungkin masih dapat berjalan di latar belakang. Benarkah?

Whatsapp, WeChat, Line, Hangouts, FB Messenger, dan aplikasi obrolan lainnya menggunakan remote notificationskemampuan untuk memeriksa pesan baru di latar belakang sesekali. Ini adalah perilaku yang diharapkan (dan Anda dapat memeriksa seberapa banyak mereka melakukannya dengan memeriksa penggunaan baterai aplikasi-oleh-aplikasi mereka, lagi di pengaturan Baterai), dan tidak boleh terlalu banyak menghabiskan baterai Anda. Dan tentu saja, mematikan Refresh Aplikasi untuk aplikasi-aplikasi itu tidak akan berpengaruh, karena aplikasi menggunakan notifikasi jarak jauh dan tidak mengambil latar belakang untuk beroperasi di latar belakang.


TL; DR: Aplikasi dapat menggunakan sumber daya ponsel Anda di latar belakang, Anda dapat melihat seberapa banyak yang mereka lakukan di Settings-> Battery.


Sumber informasi:

owlswipe
sumber
2
itu cukup bagus ... bisakah Anda mengutip referensi / sumber tentang ini?
nonopolaritas
2
@ 太極 者 無極 而 生 Semua informasi berasal dari pengetahuan pribadi saya sebagai pengembang iOS, tetapi saya juga menambahkan beberapa sumber ke bagian bawah jawaban saya.
owlswipe
1
Jawaban yang sangat bagus. Sebagai item trivia, Apple menonaktifkan notifikasi jarak jauh untuk aplikasi yang ditutup paksa di iOS 7. Tetapi karena orang yang secara kompulsif mengeluarkan semua aplikasi mereka mengeluh tidak mendapatkan pemberitahuan, yang dimasukkan kembali ke iOS 7.1 atau 7.2.
2
@Phong Saya suka, saya tidak tahu itu! Terimakasih.
owlswipe
3
Anda salah tentang penghentian paksa karena tidak terkait dengan apakah aplikasi dapat menggunakan Eksekusi Latar Belakang. Apple on BE : "[iOS] tidak meluncurkan kembali aplikasi setelah ... paksa berhenti oleh pengguna. Satu pengecualian adalah aplikasi lokasi ... di iOS 8 dan yang lebih baru ... [Kalau tidak] pengguna harus meluncurkan [itu] secara eksplisit atau reboot ... sebelum aplikasi [akan] diluncurkan secara otomatis ke latar belakang oleh [iOS]. "
tubedogg