Ví dụ SavingInstanceState và SharedPreferences

Tram Ho

1. Mở đầu

Qua bài viết này mình sẽ hướng dẫn các bạn mới tìm hiểu về Android làm một ứng dụng sử dụng về SavedInstanceState và Shared Preferences, và sự khác nhau của chúng là gì? Project này mình sử dụng ngôn ngữ Java.
Chúng ta bắt đầu thôi.

2. Tạo XML cho MainActivity

Trước tiên các bạn khỏi tạo một project ở chế độ Empty Activity bằng Android Studio với tên mà các bạn muốn. Ứng dụng của chúng ta chỉ có một màn hình duy nhất là Main Activity.
Các bạn hãy thiết kế một màn hình giống như dưới đây

Để làm được điều đó các bạn vào res, rồi layout và mở file xml activity_main lên. Các bạn nên dùng ConstraintLayout, cũng có thể kéo thả nếu bạn nào quen rồi, hoặc cũng có thể code bằng tay. Và đây là code XML của mình

3. Tạo Key class

Mục đích là tạo ra các Key dùng trong project
Các bạn tạo 1 class trong package chứa MainActivity : New -> Java Class, gõ tên class là Key và tích chọn loại là @Anotation sau đó OK


Đây là code trong Key Class

4. Sử dụng SavedInstanceState

Bài toán đặt ra: Khi một màn hình ứng dụng của người dùng (Activity) đang ở một trạng thái ở bất kỳ trong quá trình sử dụng, vào khi đó user quay màn hình thì Activity sẽ Destroy và sau đó khởi tạo 1 Activity mới. Và như vậy một số giá trị biến trước đó sẽ trở về giá trị ban đầu, ví dụ như số điểm của người chơi game trở về 0, tiến trình của progress bar cũng về vị trí ban đầu …

Như các bạn biết thì SavedInstanceSate dùng để lưu trữ trạng thái của Activity khi cấu hình thay đổi ví dụ như xoay màn hình chẳng hạn.
Đây là code ở MainActivity

Các bạn chạy ứng dụng thao tác khi ấn button Count và chọn Background cho màn hình sau đó quay màn hình, xem nó khác gì với khi không sử dụng SavedInstanceState nhé!

Vậy khi tắt ứng dụng và mở lại thì nó có lưu các giá trị Count và màu nền trước đó nữa không? Câu trả lời là không. Những ứng dụng lưu lại những giá trị trước đó khi tắt ứng dụng và bật lại thì chúng làm thế nào ????

5. Sử dụng Shared Preference

Để giải quyết bài toán trên thì bạn có thể dụng đối tượng SharedPreference của Android cung cấp. Các bạn xem code đầy đủ trong MainActivity dưới đây

Các bạn chạy lên sử dụng, tắt và bật ứng dụng để trải nghiệm.

6. Tổng Kết

Vậy qua bài viết này này mình đã hướng dẫn các bạn làm một ứng dụng nho nhỏ để xem SavedInstanceState, SharedPreferences hoạt động như thế nào cũng như sự khác nhau giữa chúng.
Các bạn có thể xem source code ở đây

Cám ơn đã theo dõi bài viết !

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo