Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

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

Здравствуйте, у меня возникла проблема при создании мобильно приложения который следит и управляет датчиками через сервер.
Мне нужно слушать сервер на протяжении всей работы приложения, даже когда оно не активно (свернуто). Я пытался создавать новый соккет и не закрывая его слушать сервер и выполнять действия в зависимости от того что пришло. Но это стопает работу приложения, так как оно либо один раз считывает и идет дальше по коду, либо если я в цикл вношу то приложение висит на этом цикле и все. Я слышал что как то можно запустить второй поток который будет работать параллельно с приложением, так вот мне нужно именно это чтоб вторым потоком приложение слушало сервер все время. Еще я слышал о Servise чтобы работало даже в неактивном состоянии. Но я не смог разобраться ни в сервисе ни во втором потоке.
Пожалуйста помогите, у меня осталось 2 дня на решение этой задачи.
Буду рад любой информации.
Заранее спасибо!
mamkaror вне форума Ответить с цитированием
Старый 27.05.2017, 13: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 в 13:51. Причина: добавил uses-permission
garr2 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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