jeff
01/15/2021, 5:16 PMSavedStateHandle
within a (Fragment's) ViewModel's onCleared()
does not appear to take effect (i.e. survive activity death). Setting it prior to onCleared()
e.g. in init {}
does successfully persist. Is that expected? I don't see that behavior documented anywhere, other than that onCleared comes after onDestroy.Ian Lake
01/15/2021, 7:21 PMonCleared()
means that ViewModel is never, ever coming back. There's no state saved for things never coming backjeff
01/15/2021, 7:28 PMjeff
01/15/2021, 7:37 PMby viewModels()
2. that ViewModel injects a SavedStateHandle
3. I call set()
on that SavedStateHandle either in A) init{}
or B) onCleared()
4. Developer Settings -> don't keep activities is ON
5. Minimize app -> Activity destroyed
6. Return to app -> SavedStateHandle DOES contain my data in the case of A) and does NOT in the case of B)Ian Lake
01/15/2021, 9:50 PMonCleared()
is never going to work for your use case, since the state is saved at the activity level (which percolates down to every fragment and every ViewModel) before/right after onStop()
(depending on your API level), which is well before onCleared()
is calledIan Lake
01/15/2021, 9:51 PMjeff
01/15/2021, 9:53 PM