Bagaimana cara menghindari aplikasi saya dihentikan, ketika sedang berjalan dan melacak lokasi saya di latar belakang?

Saya membuat aplikasi yang perlu terus melacak lokasi pengguna setiap saat. Itu juga dapat bekerja dalam mode latar belakang. Masalahnya adalah ketika saya menggunakan aplikasi lain beberapa kali. Aplikasi lain mungkin menyebabkan banyak memori. Aplikasi saya terkadang dihentikan oleh sistem. Tidak ada log kerusakan. Jadi saya ingin tahu beberapa alasannya. Apakah ada cara untuk menghindari aplikasi saya dihentikan? Sangat menghargai bantuan Anda.


person TK189    schedule 14.06.2012    source sumber


Jawaban (2)


Anda tidak dapat mencegah aplikasi tersebut dihentikan, namun hal terbaik yang dapat Anda lakukan untuk menjaganya tetap hidup adalah saat aplikasi masuk di latar belakang, bebaskan memori sebanyak yang Anda bisa - gambar, file yang di-cache... Hentikan juga pengatur waktu yang sedang berjalan, pembaruan UI dan semuanya memakan waktu. Dengan mengikuti aturan MVC, implementasi terbaik adalah membuat kelas (model) terpisah yang hanya bertanggung jawab untuk pembaruan lokasi (dengan CLLocationManager di dalamnya, dan kelas tersebut mengimplementasikan metode delegasinya). Jadi satu-satunya hal di latar belakang yang harus Anda lakukan adalah mengumpulkan titik lokasi yang diterima oleh CLLocationManager dan tidak ada yang lain. Terapkan juga metode -applicationWillTerminate di dalam diri Anda AppDelegate. Metode ini dipanggil hanya ketika aplikasi berada di latar belakang dan akan dihentikan (baik oleh OS atau pengguna) dan di dalamnya tetap mempertahankan titik lokasi di CoreData misalnya atau bagaimanapun Anda melakukannya... Saya memiliki pendekatan seperti itu dan sejauh ini aplikasi saya telah hidup selama 24 jam (tentu saja dengan pengisian daya) tanpa dimatikan.

person graver    schedule 14.06.2012

Aplikasi yang berjalan di latar belakang bergantung pada penggunaan memori, masa pakai baterai, dll. Ketika ada banyak aplikasi yang berjalan di latar belakang, aplikasi Anda mungkin dihentikan. Saya rasa Anda tidak dapat menjalankan aplikasi Anda secara permanen di latar belakang.

person Nuzhat Zari    schedule 14.06.2012
comment
Terima kasih atas balasan cepatnya. Jika aplikasi saya menggunakan lebih sedikit memori, apakah ini akan mengurangi peluang untuk dihentikan? - person TK189; 14.06.2012
comment
Dan Anda dapat memberi tahu pengguna setiap kali lokasi berubah. Ikuti tautan ini:stackoverflow.com/questions/3775730/ - person Nuzhat Zari; 14.06.2012