class TestActivity : AppCompatActivity(), SavedStateRegistryOwner {
private val mSavedStateRegistryController = SavedStateRegistryController.create(this)
private lateinit var saveStateViewModel: SaveStateViewModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mSavedStateRegistryController.performRestore(savedInstanceState)
setContentView(R.layout.activity_test_save_state)
saveStateViewModel =
SavedStateViewModelFactory(MyApplication.getInst(), this).create(SaveStateViewModel::class.java)
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
mSavedStateRegistryController.performSave(outState)
}
override fun getSavedStateRegistry(): SavedStateRegistry {
return mSavedStateRegistryController.savedStateRegistry
}
}
class SaveStateViewModel(private val savedStateHandle: SavedStateHandle) : ViewModel() {
val liveDataText: LiveData<TestModel> = savedStateHandle.getLiveData(LIVE_DATE_KEY)
fun saveLiveDataText(text: String) {
savedStateHandle.set(LIVE_DATE_KEY, Model(text, 1))
}
}
SavedStateHandle使用
最新推荐文章于 2023-06-29 21:59:52 发布