1.ViewModle生命週期貫穿整個activity,使用SavedStateHandle類來臨時保存數據,保證數據不被旋轉屏幕等ondestroy()操作摧毀
2.SharedPreferences將簡單的數據以xml文件形式保存在本地,並提供了基本的讀寫操作
因此使用ViewModle + SharedPreferences的流程如下:
讀:
用SharedPreferences的getXXX()讀數據,獲取的數據傳入SavedStateHandle臨時保存,view直接取SavedStateHandle臨時數據即可
寫:
使用SharedPreferences.Editor類,用.edit()方法保存SavedStateHandle中的臨時數據到xml文件
附:帶有SavedStateHandle的ViewModle實例化方法
xxxx = new ViewModelProvider(this,new SavedStateViewModelFactory(getApplication(),this)).get(xxxx.class);