2011-08-13 3 views
0

Я создаю приложение для Android, которое использует сокет TCP для подключения к серверу. Он непрерывно получает строки xml из этого сокета, и мне нужно анализировать его по мере его появления. В настоящее время я реализовал сокет в службе в том же процессе приложения.Android Socket в том же процессе или отдельно

Иногда я получаю исключение из исключения. Строки xml, которые я получаю, будут около 1-3 мб. Мой вопрос в том, будет ли более эффективным, если запустить мой сервис в отдельном процессе, поскольку мой сокет постоянно должен работать? Каков наилучший способ реализовать сокет в android, который работает на протяжении жизни приложения?

ответ

0

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

Существует несколько способов сделать поток в android. Моим любимым является создание класса, который расширяет Thread.

взглянуть на painless threading в андроида док и более общий Processes and Threading article

+0

Мой сокет находится в другом потоке в службе. Но дело в том, что мой сокет берет немного ресурсов, поскольку я разбираю ответ. Поэтому я рассмотрел другой процесс, чтобы получить еще одну кучу памяти. – blessenm

+0

Также класс/инструмент, который вы используете для синтаксического анализа XML, может существенно влиять на использование памяти, если он основан на событиях (свет) или на основе дерева (тяжелый, должен быть полностью загружен), как вы это делаете? – darma

+0

@darma Я использую SaxParser. – blessenm

 Смежные вопросы

  • Нет связанных вопросов^_^