Как сохранить ссылку на нить между разрушением активности и отдыхом? - PullRequest
0 голосов
/ 07 апреля 2020

Прежде всего, давайте примем тот факт, что при изменении конфигурации в действии действие уничтожается и воссоздается.

Поток содержит ссылку на действие, и когда изменение конфигурации происходит, действие ссылка больше не действительна.

Таким образом, единственное решение состоит в том, чтобы изменить на ходу поток, на лету, ссылку на новое действие.
Итак, прежде всего
До того, как действие будет уничтожено, мы хотим сохранить ссылку на работающий поток.

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

Как мы можем провести ссылку на поток между разрушением активности и отдыхом, есть ли другой способ, кроме техники фрагментов?

Спасибо

Ответы [ 2 ]

0 голосов
/ 07 апреля 2020

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

0 голосов
/ 07 апреля 2020

Используйте переменную stati c в классе активности. Просто убедитесь, что либо не будет одновременно запущено несколько экземпляров действия, либо что поток будет обрабатывать это изящно.

В качестве альтернативы, запретите восстановление активности при изменениях конфигурации. Вы делаете это в манифесте:

    <activity android:name="com.example.Booyah"
        android:configChanges="keyboard|keyboardHidden|orientation|locale|layoutDirection|uiMode|screenSize">
        <!-- More stuff -->
    </activity>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...