Saya membuat aplikasi pencarian acara, kami menetapkan kriteria pencarian dari satu layar mengisi di layar lain kemudian pengguna dapat mengedit kriteria pencarian dari layar ke-3 dan pergi ke layar ke-4.
Untuk mencapai tugas di atas saya menggunakan objek statis yang mengingat nilai-nilai di sekitar aplikasi dan saya tidak perlu melakukan hal tambahan.
Tetapi saya takut jika tentang siklus hidup objek statis di android jika memori rendah ditemukan android menghapus objek statis ???
Karena android mendukung multi tasking, jika pengguna beralih ke aplikasi lain dan ketika pengguna kembali aplikasi mulai bertingkah gila, apakah objek statis dihapus ketika itu multi tugas ??? ada ide ?? dan juga menyarankan memegang objek statis melalui metode tunggal adalah pendekatan yang lebih baik ???
Nah, pola Singleton juga didasarkan pada penggunaan variabel statis jadi sebenarnya Anda akan berada di posisi yang sama. Meskipun pendekatan statis dapat bekerja di sebagian besar waktu, mungkin terjadi bahwa dalam beberapa kasus ketika memori penuh dan aktivitas lain mengambil latar depan sebelum aplikasi Anda berpindah ke layar berikutnya, proses aktivitas Anda dapat dimatikan dan Anda kehilangan nilai statis. Namun Android menawarkan beberapa opsi nilai yang ada di antara status atau mentransmisikannya seperti:
Anda bisa mendapatkan beberapa contoh kode penggunaan preferensi, maksud, dan database sqlite dengan melihat pohon kode sumber aegis-shield di kode google atau di aplikasi Android sumber terbuka lainnya.
sumber
Setelah beberapa penelitian, ternyata menggunakan Application untuk menyimpan lajang bukanlah ide yang bagus, kecuali jika Anda siap untuk membuatnya kembali:
Jangan simpan data di objek aplikasi
jadi meskipun jawaban yang diterima secara teknis benar, namun tidak memberikan semua informasi.
Seperti yang disarankan tautan di atas, jika Anda benar-benar ingin tetap menggunakan model itu, Anda harus siap memeriksa null dan membuat ulang data, jika memungkinkan.
sumber
@ r1k0 ada di sini. Menyimpan data dalam bidang statis kelas tidak akan bertahan sendiri di seluruh proses aplikasi yang mematikan dan memulai ulang. Android secara rutin menghentikan proses (menjalankan aplikasi) saat ia membutuhkan memori.
Sesuai dokumen Android: Status aktivitas dan pengeluaran dari memori ,
Anda dapat menyimpan dan memulihkan status primitif serta objek Serializable dan Parcelable menggunakan metode di bawah ini. Ini secara otomatis dipanggil selama siklus hidup aktivitas normal.
Jadi, jika Anda memiliki kelas yang hanya memiliki variabel statis, Anda dapat menyimpan status setiap bidang di onSaveInstanceState () dan memulihkannya di onRestoreInstanceState (). Saat Android menghentikan proses yang menjalankan aplikasi Anda, status variabel Anda akan disimpan, dan saat Android memulihkan aplikasi Anda, nilainya akan dipulihkan dalam memori dengan status yang sama seperti sebelumnya.
sumber