Android-сокеты и асинктаск - PullRequest
       27

Android-сокеты и асинктаск

3 голосов
/ 15 февраля 2012

Я собираюсь начать создавать приложение, которое должно действовать как клиент tcp-чата, и я читал и читал, и я пришел к выводу, что было бы лучше (если не требуется?) Поставитьмой сокет и считыватель в асинхронном режиме.

Дело в том, что я не уверен, с чего начать, так как я новичок в Android, это, по крайней мере, для меня огромное начинание, но основы, насколько японял это.

  1. Создание представлений в основном классе и создание метода для отправки текста из EditText в асинхронный класс.

  2. Созданиеасинхронный класс, с сокетом и соединением, разместите читателя здесь и писателя, писатель будет методом для получения строкового параметра, который отправляется через сокет.

  3. Каким-то образомзаставить моего читателя постоянно слушать сокет сервера и обновлять мое текстовое представление отправляемыми строками.

Является ли это хорошим базовым «планом» для начала программирования или оно каким-то образом ошибочно илия мичто-нибудь сказать?Один вопрос, который я получил перед тем, как начать, - это асинхронная задача.Насколько я знаю, мне не нужно ничего возвращать, и мне не понадобится обновление прогресса?Мой адрес для клиента будет жестко запрограммирован, поэтому я предполагаю, что это единственное, что я хотел бы передать параметру асинхронному классу?

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

1 Ответ

7 голосов
/ 15 февраля 2012

Вы хотите использовать AsyncTask только для небольших (относительно) и прямых действий, таких как загрузка определенных элементов (например, изображений или mp3).Похоже, что вы хотите, вместо этого, Сервис .Служба будет работать в фоновом режиме вашего приложения, и вы можете обрабатывать свои сетевые действия с помощью службы.

Для получения другой полезной документации и справки о том, подходит ли вам Служба, посмотрите здесь.

Редактировать:

Для получения дополнительной информации о создании службы в своей собственной теме см. Это.

Редактировать 2:

Попытайтесь думать об этом как об Анти-Деятельности.Он делает все, что не должно делать действие, в первую очередь, обработку.Любая хардкорная обработка должна выполняться в многопоточном сервисе по многим причинам, в первую очередь для многозадачности и снятия обработки с основного потока пользовательского интерфейса.Чтобы продемонстрировать это, подумайте о Пандоре.Pandora создает сервис (в своем собственном потоке), который подключается к своему сайту и транслирует музыку.Служба имеет жизненный цикл, который позволит ей жить, пока действия не будут выполнены.Это позволяет потоковой музыке выполнять другие задачи.Но когда пользователь хочет посмотреть на то, что играет, ему нужно только нажать в приложение.Оттуда действие проверит сервис, увидит, что у него есть некоторые данные, и основывает его содержание на данных в сервисе.

Надеюсь, это поможет.Я действительно не могу придумать лучшего, зачем это ставить ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...