Сетевой поток, который должен жить, пока приложение находится на экране - PullRequest
0 голосов
/ 21 апреля 2011

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

Основная проблема здесь заключается в том, что если пользователь поворачивает экран, текущая активность уничтожается, и я не могу отличить эту ситуацию от ситуации, когда пользователь действительно покидает мою активность. Метод onRetainNonConfigurationInstance() не работает, потому что он вызывается после onStop(), и я хочу завершить соединение в onStop().

Я также пробовал привязанный сервис, но проблема точно такая же, сервис отключается, когда я поворачиваю экран.

И я не хочу сам обрабатывать изменения конфигурации.

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 13 июля 2011

Метод onUserLeaveHint() добился цели.

0 голосов
/ 21 апреля 2011

Я знаю, что это немного противоречит вашему утверждению о том, что вы сами не хотите обрабатывать изменение конфигурации, но если вы добавите

<activity android:name="org.example.Activity" android:configChanges="orientation|keyboardHidden"></activity>

в свой манифест, методы жизненного цикла не должны вызываться.Если вы не переопределите метод onConfigurationChanged (), с вашей стороны не требуется никакой специальной обработки, и суперкласс позаботится обо всем.

...