Pertanyaan Manakah yang akan digunakan: onSaveInstanceState vs. onRetainNonConfigurationInstance?


Sejauh yang saya bisa lihat di RetainNonConfigurationInstance adalah callback redundan. Jika aktivitas saya memiliki inisialisasi yang sangat mahal, saya lebih baik menggunakan onSaveInstanceState. Instance yang tersimpan mencakup lebih banyak situasi daripada instance non-konfigurasi. Adakah pedoman untuk menggunakan satu API vs. yang lain? Terima kasih.


32
2017-11-26 13:59


asal


Jawaban:


Sejauh yang saya bisa lihat di RetainNonConfigurationInstance adalah callback redundan.

Tidak, bukan itu.

Jika aktivitas saya memiliki inisialisasi yang sangat mahal, saya lebih baik menggunakan onSaveInstanceState.

onSaveInstanceState() tidak dirancang untuk "inisialisasi yang sangat mahal". Ini dirancang untuk "hei, pengguna membuat beberapa perubahan pada informasi dalam aktivitas tetapi belum menyimpannya, jangan kehilangan data itu, m'kay?".

Adakah pedoman untuk menggunakan satu API vs. yang lain?

Jika cocok dalam Bundle dan tidak terlalu besar, gunakan onSaveInstanceState(). Segala sesuatu yang tidak cocok dalam Bundle (mis., soket) atau sangat besar (mis., foto sebagai a Bitmap) harus menggunakan onRetainNonConfigurationInstance(), dan aplikasi Anda harus dalam posisi untuk membuat ulang item tersebut jika diperlukan.


45
2017-11-26 15:18