После возвращения пропал фильтр поиска
Пользователь выбрал категорию, ушёл в другое приложение, вернулся — фильтр сбросился. При повороте экрана всё работает. Противоречия нет: ViewModel переживает изменение конфигурации, но не системное завершение процесса.
Разделите данные по сроку жизни. Результаты поиска держите в состоянии экрана, а небольшой ключ восстановления — строку запроса или ID категории — в SavedStateHandle. После пересоздания загрузите результаты заново. Локальное состояние Compose можно сохранять через rememberSaveable.
savedStateHandle["categoryId"] = selectedId
val categoryId = savedStateHandle.get<String>("categoryId")
Это схема работы с уже полученным SavedStateHandle, а не полный ViewModel. Не складывайте в saved state список карточек, bitmap или весь ответ API. Данные, которые нужны после явного закрытия приложения, храните в базе или DataStore.
Что проверить: отдельно поворот и системное завершение фонового процесса. Принудительная остановка из настроек — другой сценарий; сохранённое UI-состояние не является постоянным хранилищем.
#Android #Состояние #Практика
