Есть ли способ программно перезапустить Activity, сохранив его ViewModel (как если бы это было изменение конфигурации системы)?

У нас есть устройство Android, которое помимо встроенного дисплея поддерживает внешние USB-дисплеи, поэтому пользователь может подключить сенсорный USB-экран.

Когда это произойдет, нам нужно будет переместить пользовательский интерфейс приложения на этот вновь подключенный дисплей.

Согласно документации, есть способ сделать это, запустив действие через и указав целевой идентификатор дисплея:

      startActivity(
    Intent(),
    ActivityOptions.makeBasic()
        .setLaunchDisplayId(displayId)
        .toBundle()
)
finish()

И это действительно работает. Но есть и обратная сторона: в отличие от изменения конфигурации, файл теряется, что нарушает поток пользователей.

Есть ли способ (возможно, создать такойIntent), чтобы он перезапустилActivity, но сохранилViewModelаналогично, как система это делает для изменения конфига системы?

0 ответов

Другие вопросы по тегам