Mã của tôi là:getDefaultSharedPreferences Android
final String eulaKey = "mykey";
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
boolean hasBeenShown = prefs.getBoolean(eulaKey, false);
Luôn luôn trả về giá trị khác nhau tùy thuộc vào phiên bản os. Thử nghiệm trong 2.2, 2.3.4, 3.2, 4.0.3 - trả về giá trị chính xác. Nhưng đối với thiết bị Zte blade với 2.3.7 với CianogenMod 7.1 - kết quả luôn là sai. Tôi giả sử giá trị mặc định cho getBoolean.
Đây là mã viết boolean:
final String eulaKey = "mykey";
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean(eulaKey, true);
editor.commit();
Có ai có bất cứ ý tưởng?
Cập nhật: So sánh mã hiện tại của tôi với phiên bản mã trước của tôi - không có sự khác biệt về mã. Chỉ có sự khác biệt là trong tệp kê khai: mã hoạt động Ok với minVersion = 8 và targetVersion = 8 Bây giờ tôi đang biên dịch với minversion = 8 và target = 13/vì Admob /. Có thể một số API đã thay đổi, nhưng tôi không tìm thấy gì về điều này.
GIẢI PHÁP: -Bắt đầu ứng dụng từ trình đơn tắt và từ cho tôi các DefaultSharedPreferences khác nhau. Sau khi xóa DefaultSharedPreferences khỏi mã của tôi - nó hoạt động hoàn hảo. Tôi không thể chỉ nói: mọi người không tạo lối tắt, vì vậy tôi phải thay đổi mã.
Nó không phải không nghe cho một số thiết bị để mất một cách ngẫu nhiên dữ liệu SharedPreferences. Xem http://code.google.com/p/android/issues/detail?id=14359 để biết ví dụ. –
Thông tin này chỉ liên quan đến getDefaultSharedPreferences? Bạn có biết các vấn đề tương tự về getSharedPreferences ("myAppPrefs", Context.MODE_PRIVATE); ? – Kostadin
thử với getSharedPreferences so với mặc định. Nó hoạt động tốt – png