2017-09-20 3 views
0

Je souhaite que mon application navigue toutes les cinq minutes vers une page Web donnée lorsque l'affichage est désactivé. Par conséquent, je créé un AlarmReceiver:WebView en arrière-plan ne chargera pas les pages Web

[BroadcastReceiver] 
public class BackgroundAlarmReceiver : BroadcastReceiver 
{ 
    public override void OnReceive(Context context, Intent intent) 
    { 
     MainActivity.Current.RunOnUiThread(() => 
     { 
      FMain.WV.LoadUrl("http://127.0.0.1/"); 
     }); 
    } 
} 

Virginie-Occidentale est attaché à la mise en page du fragment « FMain » et un paramètre statique de celui-ci. Cela fonctionne très bien lorsque l'écran est allumé, mais lorsque j'éteins l'écran et que je l'allume quelques minutes plus tard, la plupart du temps, je vois s'afficher «page Web non disponible, ERR_NAME_NOT_RESOLVED» (mais parfois, il charge même alors que l'écran est de).

WebView a DomStorage et JavaScript activé et WebViewClient standard:

public class MyWebViewClient : WebViewClient 
{ 
    public override bool ShouldOverrideUrlLoading(WebView view, IWebResourceRequest request) 
    { 
      view.LoadUrl(request.Url.ToString()); 
      return false; 
    } 
} 

Répondre

0

Il arrive, parce que le système Android tue votre vue Web. Avez-vous vraiment besoin de rendre une page toutes les 5 minutes en arrière-plan, ou vous voulez juste envoyer une requête?

+0

J'ai vraiment besoin de rendre la page pour mes besoins ... – 91378246

+0

@ 91378246 c'est très mauvais pour la vie de la batterie. – ad1Dima

+0

Ouais, je sais, mais il n'y a aucun moyen de rendre la pleine page ... – 91378246