Tôi đã phát triển một trò chơi trên Android. Tôi hiện đang lưu hầu hết số liệu thống kê trò chơi trong Cơ sở dữ liệu. Tuy nhiên, ứng dụng không sử dụng nhiều hơn một hàng trong DB. Tôi bây giờ quan tâm đến việc giới thiệu một số số liệu thống kê mới nhưng điều này sẽ làm cho DB của tôi cài đặt lại và do đó rõ ràng ra sự tiến bộ của mọi người. Để tránh điều này trong tương lai, tôi đang xem xét lưu trữ số liệu thống kê trò chơi bằng SharedPreferences thay thế. Câu hỏi của tôi là có bao nhiêu thứ khác nhau có thể được lưu trữ theo cách đó trước khi nó trở thành một vấn đề. Tổng cộng tôi sẽ lưu trữ khoảng 40 giá trị, tất cả các số nguyên.Android SharedPreferences limits?
Trả lời
SharedPreferences được ghi vào tệp xml, do đó kích thước tối đa của tệp trên Android là tệp Xml SharedPreferences lớn có thể như thế nào. Tôi có thể nói rằng 40 giá trị số nguyên sẽ không thành vấn đề.
Kích thước tối đa của một giá trị trong tệp SharedPreferences được giới hạn ở kích thước tối đa của giá trị bạn đang cố gắng lưu trữ. (Có nghĩa là bạn không thể đặt một giá trị String dài hơn Strings có thể bằng Java.)
Điều duy nhất tôi đề nghị là đảm bảo chỉnh sửa hàng loạt càng nhiều càng tốt (nghĩa là không .commit()
mỗi thay đổi) và cũng không tạo trình chỉnh sửa mới cho từng thay đổi. (Đây chỉ là những thực hành tốt.)
SharedPreferences settings = getSharedPreferences(PREFS_FILE_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putInt("firstValue", mFirst);
editor.putInt("secondValue", mSecond);
editor.putInt("thirdValue", mThird);
// Commit the edits! (As infrequently as possible)
editor.commit();
"dài hơn chuỗi có thể bằng Java" - Chuỗi có thể có 2^31 - 1 = 2 tỷ ký tự. Vâng, có thể dựa vào bộ nhớ trong của điện thoại. –
Tôi không biết về bất kỳ hạn chế nào nhưng liên quan đến vấn đề của bạn với mọi tiến bộ đang bị xóa sổ. Bạn có thể ghi đè lên phương thức onUpgrade trong lớp SQLite của bạn và sau đó di chuyển mọi dữ liệu vào cơ sở dữ liệu mới hơn.
Chính xác. Xem ví dụ notepad - bạn có thể sử dụng ALTER TABLE để thêm các cột mới. Hoặc bạn có thể thêm một bảng hoàn toàn mới. Bạn có thể chuyển sang SharedPreferences, nhưng kể từ khi bạn đã đi cho một phương pháp tiếp cận cơ sở dữ liệu, bạn cũng có thể gắn bó với nó. – EboMike
Tôi nghĩ rằng tôi sẽ thử mô hình SharedPreferences và xem cái nào tôi thích hơn. Tôi sẽ giữ cho DB xung quanh mặc dù bởi vì tại một số điểm tôi có kế hoạch cho phép cho nhiều trò chơi đã lưu. Cảm ơn lời khuyên về Alter Table, nó sẽ giúp tôi chuyển sang SharedPreferences và giữ cho tiến trình của mọi người được lưu. – Tim
- 1. android sharedpreferences set value
- 2. Android: Copy/Duplicate SharedPreferences
- 3. Redis PUBLISH/SUBSCRIBE limits
- 4. iOS 'tương đương với SharedPreferences của Android
- 5. Android: sử dụng SharedPreferences trong thư viện
- 6. Cách sử dụng SharedPreferences
- 7. Lưu gói vào SharedPreferences
- 8. android-maven-plugin: phương pháp triển khai không xóa SharedPreferences
- 9. Android: Không thể tạo thư mục cho SharedPreferences nộp
- 10. cách kiểm tra chuỗi SharedPreferences trống hoặc không * android
- 11. Android - Cách sử dụng SharedPreferences trong lớp không hoạt động?
- 12. Mảng chuỗi trong SharedPreferences
- 13. SharedPreferences không liên tục
- 14. onSavedInstanceState vs. SharedPreferences
- 15. Lưu trữ một mảng String trong SharedPreferences
- 16. SharedPreferences không được cập nhật
- 17. SharedPreferences behavior on Update/Uninstall
- 18. Lưu vào SharedPreferences từ DialogPreference tùy chỉnh
- 19. Android: Cách đặt lại FirstRun SharedPreferences khi ứng dụng của tôi được cập nhật?
- 20. Tôi làm cách nào để nhận SharedPreferences từ PreferenceActivity trong Android?
- 21. Làm cách nào để lưu trữ và truy xuất bitmap trong sharedPreferences trong Android?
- 22. Android SharedPreferences, làm thế nào để lưu một biến int đơn giản
- 23. Nhiều lựa chọn ListView và SharedPreferences
- 24. Kích thước tối đa của SharedPreferences lớp
- 25. Cách kiểm tra SharedPreferences từ adb shell?
- 26. Tiết kiệm toàn bộ Bundle để SharedPreferences
- 27. Ngữ cảnh ứng dụng cho SharedPreferences?
- 28. SharedPreferences từ hoạt động khác nhau
- 29. nhận SharedPreferences từ một dịch vụ
- 30. Đọc SharedPreferences khi bạn chưa đặt tên tệp
40 số nguyên là tốt để lưu trữ trong SharedPreferences –