Как изменить URL-адрес WebView и обновить страницу по времени, подключившись к внутреннему серверу

#android #webview

#Android #webview

Вопрос:

Я хочу добиться этой функции:

Существует фоновая служба:

1) Когда сеть отключена, фоновые службы продолжают обнаруживать, если возобновление работы сети, обновление WebView, восстановление отображения.

2) Когда сеть в порядке, фоновые службы будут продолжать обнаруживать, если фоновому серверу присвоен новый URL-адрес, затем обновите текущую страницу.

Ответ №1:

Вы можете использовать широковещательный приемник вместе с AlarmManager и PendingIntent. Установите повторение сигнала тревоги на желаемую продолжительность и запустите ожидающее намерение на эту продолжительность.

 public void scheduleAlarmForURLAutoUpdate() {
        Long time = new GregorianCalendar().getTimeInMillis() 1000 * 60 * 60 * 24;// current time   24 Hrs
        Intent intent = new Intent(this, AlarmReceiver.class);
        PendingIntent intentAlarm  = PendingIntent.getBroadcast(this, 0, intent, 0);
        AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, time, 1000 * 60 * 60 * 24, intentAlarm);// 24 Hrs
        //Toast.makeText(this, "Alarm Scheduled for 24 Hrs", Toast.LENGTH_LONG).show();
    }
  

Класс AlarmReceiver

 public class AlarmReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        updateURL(context);//Method to update the URL from the server and then refresh your WebView activity


}
  

Комментарии:

1. Я очень благодарен за ваш ответ. Но я все еще не могу решить этот вопрос. Если я получу новый URL-адрес с сервера, как я могу обновить свой WebView? Какой метод я мог бы использовать? Спасибо.

Ответ №2:

общедоступный класс AlarmReceiver расширяет BroadcastReceiver {

 @Override
public void onReceive(Context context, Intent intent)
{
    Intent i = new Intent(context, AutoUpdateService.class);
    context.startService(i);
}
  

}