Activity / ViewModel воссоздается при отображении новой активности - PullRequest
0 голосов
/ 10 января 2020

У меня есть действие A, которое отображает список элементов, которые загружаются асинхронно из веб-службы. Этот список хранится в ViewModel. Когда вы выберете один из этих элементов, откроется действие B с подробной информацией о выбранном элементе. Занятие B является дочерним занятием из Занятия A. После нажатия кнопки «Назад» go вернется в Занятие A ... однако на этом этапе Занятие А будет уничтожено, и будет создана новая ViewModel, которая снова вызывает веб-службу.

Это не похоже на другие проблемы, которые я видел, когда устройство поворачивается, когда действие B находится на переднем плане. Метод onDestroy действия A не вызывается, когда элемент выбран, и отображается действие B ... но он вызывается при нажатии кнопки "Назад".

Я не хочу, чтобы ViewModel обновлял sh данные каждый раз, когда пользователь возвращается к занятию А ... есть идеи, что может быть причиной этого?

информация о соответствующем манифесте:

    <activity android:name=".ActivityA" />
    <activity
        android:name=".ActivityB"
        android:label="@string/title_b"
        android:parentActivityName=".ActivityA" />

занятие A:

class ActivityA : AppCompatActivity() {
    private lateinit var mainViewModel: MainViewModel

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.a_activity)
        mainViewModel = ViewModelProviders.of(this).get(MainViewModel::class.java)
        ...

Не уверен, какой другой код поможет диагностировать проблему ...

...