Хорошо, позвольте мне объяснить, что я делаю, и тогда у меня есть пара вопросов.
Объяснение
У меня есть приложение, над которым я работаюбудет использовать сервис для проверки обновлений на моей веб-странице каждые 1-10 минут.Таким образом, в ACTION_BOOT_COMPLETED MyReceiver (Broadcast Receiver) запускается, и если это трансляция ACTION_BOOT_COMPLETED, он запускает службу BootService.BootService затем устанавливает AlarmService, который запускает MyReceiver, и затем BootService завершается.Когда в MyReceiver поступает сигнал тревоги, он запускает другую службу с именем UpdateService, которая будет проверять Интернет с любым интервалом, установленным BootService.
У меня есть служба BootService, потому что каждый раз, когда мое приложение запускается, оно запускает BootService.чтобы убедиться, что AlarmService работает на тот случай, если по какой-либо причине он будет прерван.
Когда я делаю свои запросы HTTPClient, я хочу, чтобы он был защищен входом в систему, поэтому я пытался сделать это при каждом запуске BootService.инициирует запрос HTTPClient на мой веб-сайт, войдет в систему и сохранит идентификатор сеанса, который я буду использовать в UpdateService.Однако, когда я помещаю запрос HTTPClient в BootService, я получаю ANR (приложение не отвечает).Я попытался поместить запрос HTTPClient в AsyncTask, и все же у меня есть проблемы с ним.
Вопросы
Было бы лучше, если бы я убралс BootService и вместо этого просто MyReceiver установить AlarmService.И всякий раз, когда кто-то загружает приложение, только что отправившее широковещательную рассылку, чтобы снова вызвать тревогу?
Что может быть причиной всей задержки во время запроса HTTPClient, что оно блокирует мою программу и вынуждаетANR?Как я мог правильно реализовать мой запрос HTTPClient, чтобы он не задерживал мою службу?
Любые хорошие примеры метода входа в систему / хранилища cookie.А сервис, который позже использует идентификатор сеанса для выполнения будущих запросов?