3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
|
||||||
1 | ||||||
Handler23.02.2016, 16:26. Показов 1722. Ответов 16
Метки нет (Все метки)
Есть TextView и Handler к нему(для вывода в него). Я создаю поток в котором я с некоторым интервалом дергаю handler. Все идет нормально(все записи выводятся в textView). Но как только я поворачиваю телефон, перестают добавляться новые записи (но созданный поток продолжает работу). это происходит потому что поток будет обращаться к handler'у из прошлого объекта, и постить в него, а не в новый. А как тогда можно решить эту проблему, как исправить код, чтобы в TextView и после поворота добавлялись новые записи? Подскажите пожалуйста
0
|
23.02.2016, 16:26 | |
Ответы с готовыми решениями:
16
Handler Не работает Handler Handler timer Про Handler и ProgressBar |
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
|
|
23.02.2016, 17:02 [ТС] | 3 |
То есть только в этом, а Handler получается автоматически пересоздает ссылку. То есть после поворота handler будет продолжать работу уже с handlerом из нового обьекта так получается?
0
|
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
|
|
23.02.2016, 17:26 [ТС] | 5 |
После поворота идет отчет сначала, то есть выводится text0 потом text1 и так дальше. То есть Handler создается новый а как сделать чтобы Handler новый не создавался а найти старый и с ним продолжить дальше работу которая не была закончена до поворота? Можно как нибудь ссылку пересоздать на новый обьект активити, чтобы после поворота не начинать с нуля работу?
0
|
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
|
|
23.02.2016, 17:50 | 6 |
я вообще считаю что активити не нужно пересоздавать при поворотах, это сразу решит целую кучу проблем и можно будет выпиливать целые методы, которые что-то там сохраняют, а потом вытягивают при простом повороте экрана когда всего-то надо сделать - это пересчитать размеры вьюшек
некоторое время назад меня умники шапками начали закидывать, якобы это выльется боком когда-нибудь, когда Нибиру встанет в одну линию с Юпитером и Плутоном и солнце померкнет
0
|
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
|
|
23.02.2016, 17:54 [ТС] | 7 |
А как запретить пересоздание активити?
0
|
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
|
|
23.02.2016, 17:56 | 8 |
Сообщение было отмечено yura91 как решение
Решение
1
|
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
|
|
23.02.2016, 18:06 [ТС] | 9 |
То есть чтобы поворот происходил, но только активити не пересоздавалось можно как то так?
Добавлено через 9 минут Все понял спасибо за ответ
0
|
43 / 16 / 6
Регистрация: 05.12.2015
Сообщений: 65
|
|
23.02.2016, 19:35 | 10 |
0
|
Pablito
|
23.02.2016, 19:41
#11
|
0
|
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
|
|
23.02.2016, 19:43 [ТС] | 12 |
0
|
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
|
||||||||||||||||
23.02.2016, 19:55 | 13 | |||||||||||||||
не совсем
ну например есть сервис, который должен посылать данные в активити можно в манифесте в свойствах активити указать что-то типа
обращаю внимание - мы не указываем какую именно активити надо вызвать, а говорим что action такой-то так же важно указать android:launchMode="singleTask" что бы активити стартовала всегда в одном экземпляре когда мы создаем интент и говорим startActivity() и наша активити реагирует то у нее вызывается метод onNewIntent() (да да есть такой) примерный код и логика активити такая
1
|
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
|
|
23.02.2016, 20:07 [ТС] | 14 |
А если в момент обращения сервиса к активити пользователь повернет экран(опять тоже пересоздание), то как данная конструкция избавляет от ошибки? Сервис посылает интент а активити еще не успел пересоздаться чтобы его поймать что здесь будет?
0
|
Pablito
|
23.02.2016, 20:16
#15
|
Не по теме: мое сообщение не о том, как не пропустить собщение, а как можно перекидывать что-то между активностями или сервисом
0
|
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
|
|
23.02.2016, 20:20 [ТС] | 16 |
То есть активити в этом случае даже не будет заново стартовать как при явных интентах. Ей можно не заметно что то передать из сервиса это вы имели ввиду?
0
|
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
|
|
23.02.2016, 20:26 | 17 |
если активити была запущена, например открыта на экране или свернута то вызовется метод onNewIntent
иначе активити запустится как обычно через onCreate() точно, при этом ненадо в сервисе думать какой там у нас контекст сейчас, как класс называется и так далее если сомневаться в том, что какой-то интент не дойдет до активности потому что та еще не пересоздалась то можно вообще всю систему интентов ставить под сомнение
0
|
23.02.2016, 20:26 | |
23.02.2016, 20:26 | |
Помогаю со студенческими работами здесь
17
Handler, поток не останавливается Handler и интервал времени Handler vs Service vs AsynkTask Потоки (Handler внутри synchronized) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |