ฉันกำลังใช้งานSharedPreferencesในแอพ Android ของฉัน ฉันใช้ทั้งสองcommit()และapply()วิธีจากการตั้งค่าที่ใช้ร่วมกัน เมื่อฉันใช้ AVD 2.3 จะไม่แสดงข้อผิดพลาด แต่เมื่อฉันเรียกใช้รหัสใน AVD 2.1 apply()วิธีจะแสดงข้อผิดพลาด
ดังนั้นความแตกต่างระหว่างสองสิ่งนี้คืออะไร? และโดยใช้เพียงcommit()ฉันสามารถเก็บค่าการตั้งค่าโดยไม่มีปัญหาใด ๆ ?
apply()จะชนะ ดังนั้นคุณสามารถใช้งานได้อย่างปลอดภัยapply()แทนcommit()หากคุณแน่ใจว่ามีการใช้งาน SharedPreferences เพียงแอปพลิเคชันเดียวเท่านั้น
commit()หรือไม่?
apply()จะทำดิสก์ I / O แบบอะซิงโครนัสในขณะที่commit()ซิงโครนัส ดังนั้นคุณไม่ควรโทรcommit()จากเธรด UI