В моем приложении я хотел бы предложить действие, которое будет регулярно выполняться в фоновом режиме.Поэтому я использую AlarmManager, который запускает IntentService.
Сложность в том, что для этого фонового действия требуется подключение к Интернету.Поэтому я попытался использовать WakeLock, который, по-видимому, не устанавливал соединение, когда устройство было заблокировано.
Затем я подумал о регистрации BroadcastReceiver для прослушивания «android.net.conn.CONNECTIVITY_CHANGE», когда службазапускается и сразу же отменяет регистрацию, как только желаемая трансляция получена.
Мой код выглядит примерно так:
public class BackgroundService extends IntentService {
private static final IntentFilter filter =
new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
private static NetworkStateChangedReceiver receiver =
new NetworkStateChangedReceiver();
protected void onHandleIntent(Intent intent) {
registerReceiver(receiver, filter);
}
}
Мой вопрос сейчас: будет ли этот приемник уничтожен, как толькокак служба останавливается (так как она не имеет ничего общего, пока нет доступного соединения)?И поэтому, как я могу реализовать услугу, которая задерживает ее работу до тех пор, пока не будет доступно сетевое соединение?
Спасибо.