Я пишу приложение для Android, чтобы сделать сокет сервера и получать сообщения с сервера
когда я пишу одно и то же приложение с помощью Thread, он работает очень хорошо, но я не могу получить доступ к элементам пользовательского интерфейса в Thread
тогда как в случае сервисов метод startService зависает while (true) {socket.accept()}
Вы можете прочитать о потоках и Android в официальной документации . Кроме того, посмотрите AsyncTask, что должно помочь вам многое.