Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Java > Java Мобильная разработка (Android)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 26.05.2017, 16:26   #1
mamkaror
Новичок
Джуниор
 
Регистрация: 26.05.2017
Сообщений: 1
Восклицание Помогите пожалуйста, слушать сервер вторым потоком

Здравствуйте, у меня возникла проблема при создании мобильно приложения который следит и управляет датчиками через сервер.
Мне нужно слушать сервер на протяжении всей работы приложения, даже когда оно не активно (свернуто). Я пытался создавать новый соккет и не закрывая его слушать сервер и выполнять действия в зависимости от того что пришло. Но это стопает работу приложения, так как оно либо один раз считывает и идет дальше по коду, либо если я в цикл вношу то приложение висит на этом цикле и все. Я слышал что как то можно запустить второй поток который будет работать параллельно с приложением, так вот мне нужно именно это чтоб вторым потоком приложение слушало сервер все время. Еще я слышал о Servise чтобы работало даже в неактивном состоянии. Но я не смог разобраться ни в сервисе ни во втором потоке.
Пожалуйста помогите, у меня осталось 2 дня на решение этой задачи.
Буду рад любой информации.
Заранее спасибо!
mamkaror вне форума Ответить с цитированием
Старый 27.05.2017, 14:51   #2
garr2
 
Регистрация: 08.11.2016
Сообщений: 2
По умолчанию

Тебе нужно создать сервис ,в котором твое приложение будет общаться с сервером, и в манифесте пропиши к нему строку: android: process=":second". Это запустит сервис в другом потоке, так же тебе нужно создать ресивер который будет стартовать сервис после запуска устройства.
Манифест:

Код:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<receiver
            android:name=".AlarmReceiver"
            android:enabled="true"
            android:exported="true"
            android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>

        <service
            android:name=".ServiceAlarm"
            android:enabled="true"
            android:exported="true"
            android:process=":second" />
Ресивер:

Код:
public class AlarmReceiver extends BroadcastReceiver {

    final String LOG_TAG="myLogs";

    public AlarmReceiver() {
        Log.d(LOG_TAG,"AlarmReceiver");
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.d(LOG_TAG,"onReceive");
        // TODO: This method is called when the BroadcastReceiver is receiving
        // an Intent broadcast.
        context.startService(new Intent(context,ServiceAlarm.class));
    }

}

Последний раз редактировалось garr2; 27.05.2017 в 14:51. Причина: добавил uses-permission
garr2 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите, пожалуйста, переписать код приложения по TCP клиент-сервер в UDP клиент - сервер... KhNJu C/C++ Сетевое программирование 3 13.03.2017 00:43
Помогите с потоком lord24 Общие вопросы Delphi 75 02.12.2015 13:04
Помогите с RTSP потоком (нужно сделать снимок из потока) power11 Мультимедиа в Delphi 1 30.04.2015 21:01
Слушать udp порт Letnab Работа с сетью в Delphi 5 26.05.2012 12:21
Байден посоветовал Саакашвили слушать маму Mr.Qwerty Свободное общение 0 23.07.2009 23:21


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS