Разъем Blackberry для подключения и резьбы - PullRequest
0 голосов
/ 04 октября 2011

Я занимаюсь разработкой программы, которая имеет 2 кнопки: Start и End. Когда я нажимаю «Пуск», он начинает получать местоположения каждые 30 секунд. и отправьте их на сервер, используя сокетное соединение. Когда я нажму кнопку «Завершить», все работы прекратятся. Могу ли я сделать это без использования потока? Если мне нужно использовать темы, что это лучший способ реализовать это. Должен ли я слушать LocationProvider с LocationListener, чтобы получать местоположения каждые 30 секунд и отправлять их в потоке, или я должен создавать поток подключения и получать местоположение в каждом и отправлять.

Ответы [ 3 ]

2 голосов
/ 04 октября 2011

К сожалению, это частичный ответ (мне трудно понять остальную часть вашего вопроса):

Могу ли я сделать это без использования потока?

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

1 голос
/ 04 октября 2011

Если вы сделаете соединение в основном потоке пользовательского интерфейса, ваше приложение перестанет отвечать на запросы, пока соединение не будет разорвано, что неправильно !!! Вы должны создать поток для каждого соединения, которое вы устанавливаете, это настоятельно рекомендуется.

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

Ваша работа должна выполняться в потоках, не используйте основной поток для этих вещей

0 голосов
/ 16 сентября 2013

Вы должны использовать другой поток помимо основного потока пользовательского интерфейса (EDT) для сетевых транзакций. Вы не можете использовать основной поток для сетевых транзакций, потому что это трудоемкое действие, из-за которого основной поток не отвечает и ваше приложение в конечном итоге завершится сбоем.

...