убить поток после возобновления основной деятельности?
-
28-10-2019 - |
Вопрос
У меня такая проблема в android.у меня есть основная деятельность, которая вызывает поток с этим
родовое словоубить его публичное логическое значение в MainActivity. что я могу сделать, чтобы сохранить поток, чтобы, когда я возобновлю работу, я все еще могу убить поток?
Решение
Думаю, вы хотите сделать что-то более близкое к тому, что это решение .
Однако, если вы действительно хотите продолжать делать это в Thread
, я предлагаю вам расширить новый класс из Thread
и добавить метод под названием killMe()
.Это изменит (теперь закрытый ) логический флаг kill
.Затем в своем onRetainNonConfigurationInstance()
вы можете вернуть этот Thread
и снова получить его в onResume
.Если вы вернетесь и активность не была прервана, то все в порядке, вы можете просто вызвать killMe()
для существующего Thread
.
Пример:
родовое словоДругие советы
Почему вы хотите убрать тему в резюме?
Почему бы не запустить поток в части возобновления, а затем добавить блок finally, чтобы обработать тот факт, что код connect()
прерывается, а затем, когда он запускается снова, вам просто нужно повторно подключиться и выполнить операцию.
В случае мобильных устройств лучше всего поставить галочку в каком-либо постоянном хранилище, где вы находитесь, чтобы в случае прерывания вы могли продолжить, когда генерирующий кодовый код будет запущен снова.
Существует высокая вероятность того, что вас прервут, поэтому подготовьтесь к этому.
Поток может быть остановлен ОС, поэтому нечего сохранять и убивать позже.
Если вам действительно нужно сделать что-то подобное, запустите код Activity
, поскольку он будет работать в другом процессе, чем ваш код RemoteService
, и, скорее всего, останется.
Возможно, вы захотите посмотреть на этот вопрос: