Professional Documents
Culture Documents
thiết bị di động
Shared Preference
Note
❖ Các slide trong bài giảng này dựa trên các bài
thực hành của Google Android Labs
❖ Original slides:
https://drive.google.com/drive/folders/1eu-
LXxiHocSktGYpG04PfE9Xmr_pBY5P
2
9.1 Shared Preferences
3
Nội dung
● Shared Preferences
● Lắng nghe những thay đổi trên Shared
Preferences
4
Định nghĩa Shared Preferences
● Đọc và ghi một lượng nhỏ primitive data dưới
dạng các cặp khóa / giá trị (key/value) vào một
tệp trên bộ nhớ của thiết bị
● Lớp SharedPreference cung cấp các API để đọc,
ghi và quản lý dữ liệu này
● Lưu dữ liệu hàm onPause() và khôi phục dữ liệu
trong hàm onCreate()
5
Shared Preferences và Saved Instance State
6
Shared Preferences vs. Saved Instance State
● Duy trì dữ liệu trên các phiên ● Lưu trữ dữ liệu trạng thái
người dùng, ngay cả khi ứng trên các phiên bản hoạt
dụng bị tắt và khởi động lại động trong cùng một
hoặc thiết bị được khởi động phiên người dùng
lại ● Dữ liệu không được ghi
● Dữ liệu cần được ghi nhớ nhớ trong các phiên,
qua các phiên, chẳng hạn chẳng hạn như tab hiện
như cài đặt ưa thích của được chọn hoặc trạng
người dùng hoặc điểm trò thái hoạt động hiện tại.
chơi của họ
● Công dụng phổ biến là
● Việc sử dụng phổ biến là lưu khôi phục lại trạng thái
trữ các tùy chọn của người sau khi xoay thiết bị
dùng 7
Tạo Shared Preferences
● Chỉ cần duy nhất một file Shared Preferences file
cho cả ứng dụng
● Đặt tên file bằng tên gói ứng dụng : độc đáo và dễ
kết hợp với ứng dụng
● Đối số MODE cho getSharedPreferences () là để
tương thích ngược : chỉ sử dụng
MODE_PRIVATE để được bảo mật
8
getSharedPreferences()
● SharedPreferences.Editor interface
10
SharedPreferences.Editor
@Override
protected void onPause() {
super.onPause();
SharedPreferences.Editor preferencesEditor =
mPreferences.edit();
preferencesEditor.putInt("count", mCount);
preferencesEditor.putInt("color", mCurrentColor);
preferencesEditor.apply();
}
11
Khôi phục Shared Preferences
12
Lấy dữ liệu trong hàm onCreate()
13
Xóa dữ liệu
14
clear()
SharedPreferences.Editor preferencesEditor
=
mPreferences.edit();
preferencesEditor.clear();
preferencesEditor.apply();
15
Lắng nghe các
thay đổi
16
Lắng nghe các thay đổi
● Thực hiện interface
SharedPreference.OnSharedPreferenceChangeLi
stener
● Đăng ký listener với
registerOnSharedPreferenceChangeListener()
● Đăng ký và hủy đăng ký listener trong hàm
onResume() và hàm onPause()
● Thực hiện hàm callback
onSharedPreferenceChanged() 17
Interface và callback
public class SettingsActivity extends AppCompatActivity
implements OnSharedPreferenceChangeListener { ...
18
Tạo và đăng ký listener
SharedPreferences.OnSharedPreferenceChangeListener listener =
new SharedPreferences.OnSharedPreferenceChangeListener() {
public void onSharedPreferenceChanged(
SharedPreferences prefs, String key) {
// Implement listener here
}
};
prefs.registerOnSharedPreferenceChangeListener(listener);
19
Cần một tham chiếu MẠNH đến listener
20
Bài tập thực hành :
HelloSharedPrefs
21
Tìm hiểu thêm
● Saving Data
● Storage Options
● Saving Key-Value Sets
● SharedPreferences
● SharedPreferences.Editor
Stackoverflow
● How to use SharedPreferences in Android to store, fetch and edit values
● onSavedInstanceState vs. SharedPreferences
22
Tiếp theo?
23
END
24