J'essaie d'implémenter le retour d'une activité sans avoir besoin d'actualiser l'écran. Pour autant que je vois, il y a 4 états possibles pour traiter:onResume() sans appeler setupWebView() après avoir renvoyé l'activité
- deux « Utiliser les réseaux sans fil » et « Utiliser les satellites GPS » sont désactivées (l'utilisateur est dirigé vers Mes préférences géographiques et non autorisés à continuer si l'sont sont désactivées)
- L'un de ces deux sont activés (1 de 2 possibilités) 3, les deux sont activés
mon problème est que, après le retour d'autres activités dans mon application, setupWebView() est appelée à chaque fois provoquant un délai d'actualisation de l'écran. L'actualisation est quelque peu nécessaire en revenant des préférences (par exemple, le GPS après l'activation obtient un correctif), mais certainement pas après le retour d'une activité car le délai de repeindre l'écran est gênant et ralentit le flux de travail de mon app.
Quelqu'un peut-il s'il vous plaît aviser comment gérer cela dans mon onResume() afin d'éviter tous les appels de setupWebview.
Voici le code de mon onResume() dans mon activité principale:
@Override
protected void onResume() {
if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)
&& !locationManager
.isProviderEnabled(LocationManager.NETWORK_PROVIDER))
createMyLocationDisabledAlert();
if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 500, 0, this);
mostRecentLocation = locationManager
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (mostRecentLocation != null)
setupWebView();
else {
mostRecentLocation = locationManager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
setupWebView();
}
}
else if (locationManager
.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER, 500, 0, this);
mostRecentLocation = locationManager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (mostRecentLocation != null)
setupWebView();
else {
mostRecentLocation = locationManager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
setupWebView();
}
}
// locationManager.requestLocationUpdates(provider, 500, 0, this);
// mostRecentLocation = locationManager.getLastKnownLocation(provider);
// } else
// mostRecentLocation = locationManager
// .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
super.onResume();
}
Cela a du sens. Je vais essayer, merci. – qubz