Лезет противный Destroy
Лезет противный Destroy
Привет. Вот и меня сюда привело. Начитался уроков.
Значит проблема такая.
1. Делаю программку.
2. Все есть, код, активити, класс, блютуз, все работает.
Но все это работает до тех пор, пока телефон не перейдет в режим ожидания (погаснет экран или я нажму кнопочку питания).
В это время вызывается зачем-то destroy. Ладно бы он просто паузился, но он почему-то уничтожается, а блутузный класс остается висеть в подключенном состоянии. Ну с этим разобрался, класс убить смог. Но зачем дестрой-то? Как это побороть.
Пока решил проблему методом "Не давать погаснуть дислпею". Но это полумера, ведь есть кнопка.
PowerManager и WakeLock не помогли. Точнее опять та же полумера. Кнопка убивает приложение, приложение рвет связь по блютузу.
Что делать?
Значит проблема такая.
1. Делаю программку.
2. Все есть, код, активити, класс, блютуз, все работает.
Но все это работает до тех пор, пока телефон не перейдет в режим ожидания (погаснет экран или я нажму кнопочку питания).
В это время вызывается зачем-то destroy. Ладно бы он просто паузился, но он почему-то уничтожается, а блутузный класс остается висеть в подключенном состоянии. Ну с этим разобрался, класс убить смог. Но зачем дестрой-то? Как это побороть.
Пока решил проблему методом "Не давать погаснуть дислпею". Но это полумера, ведь есть кнопка.
PowerManager и WakeLock не помогли. Точнее опять та же полумера. Кнопка убивает приложение, приложение рвет связь по блютузу.
Что делать?
Re: Лезет противный Destroy
Service
Re: Лезет противный Destroy
Краткость сестра таланта конечно. Но можно хотя бы чууууточку поподбробнее?
Буквально вот после написания осенило.
Прога имеет в манифесте принудительный альбомный режим.
При блокевроке телефон уходит в портретный и вот тут-то начинается возня с пересозданием активити. Но эт не дело. Это каждая софтина, которая вылезет (в том числе и звонок), будет разрушать мне активити, черт.
Мысля кружится - отдельный поток, в нем реализовать весь БТ обмен, и подсовывать ему хэндлер для сообщений. Но тут все стопится на вопросе, как блин с новой активири поймать этот отдельный поток, как то есть его вообще найти в системе.
Буквально вот после написания осенило.
Прога имеет в манифесте принудительный альбомный режим.
При блокевроке телефон уходит в портретный и вот тут-то начинается возня с пересозданием активити. Но эт не дело. Это каждая софтина, которая вылезет (в том числе и звонок), будет разрушать мне активити, черт.
Мысля кружится - отдельный поток, в нем реализовать весь БТ обмен, и подсовывать ему хэндлер для сообщений. Но тут все стопится на вопросе, как блин с новой активири поймать этот отдельный поток, как то есть его вообще найти в системе.
Re: Лезет противный Destroy
mt = (MyTask) getLastNonConfigurationInstance();
Найдет нужный процесс, если он не асинхронный?
public class USE_BT extends Thread {
... run
... myInitProcedure
... myDoneProcedure
... myExtendWorkProcedures
}
типа такого создано
Он же принимает хэндлер и при активном режиме шлет сообщения с БТ в активити, где с ними разбирается кусок кода.
Найдет нужный процесс, если он не асинхронный?
public class USE_BT extends Thread {
... run
... myInitProcedure
... myDoneProcedure
... myExtendWorkProcedures
}
типа такого создано
Он же принимает хэндлер и при активном режиме шлет сообщения с БТ в активити, где с ними разбирается кусок кода.
Re: Лезет противный Destroy
Ну по сервису есть уроки на этом сайте. Он работает в отдельном потоке, не зависящем от ui (а при желании и в отдельном процессе).
Re: Лезет противный Destroy
То есть мало геморроя с передачей данных по БТ, еще и возиться с обменом между службой и прогой?
Или я опять чего-то недопонял?
Или я опять чего-то недопонял?
Re: Лезет противный Destroy
в целом да. Но я сказал не как проще, а как на мой взгляд правильнее сделать. А решать конечно вам.
Re: Лезет противный Destroy
Что-то я упустил это сообщение, не поблагодарил.
В общем, спасибо. Раз все так, значит я на верном пути.
В общем, спасибо. Раз все так, значит я на верном пути.
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Лезет противный Destroy
Вообще это странно, и что-то мне подсказывает что это беда самого телефона. Но если говорить о правильности, если у вас приложение может работать в фоне, то стоит задуматься о сервисе. Правда есть один нюанс. Если делать обычный сервис, то вы получите сервис в другом потоке, но всё же В ТОМ ЖЕ процессе. А я так понимаю onDestroy телефон делает не только активности, но и всему процессу. Т.е. тут может понадобится делать процесс в отдельном процессе. А там уже межпроцессорное взаимодействие (например можно почитать про AIDL)Ладно бы он просто паузился, но он почему-то уничтожается, а блутузный класс остается висеть в подключенном состоянии. Ну с этим разобрался, класс убить смог. Но зачем дестрой-то? Как это побороть.
