Я пытаюсь осуществить возврат из действия без необходимости обновлять экран.Насколько я вижу, есть 4 возможных состояния для обработки:
- Оба параметра «Использовать беспроводные сети» и «Использовать спутники GPS» отключены (пользователь направлен в настройки «Мое местоположение» и не может продолжатьесли оба из них отключены)
- Один из этих двух включен (1 из 2 вариантов) 3, оба включены
Моя проблема заключается в том, что после возврата из других действий в моем приложении, setupWebView () вызывается каждый раз, вызывая задержку обновления экрана.
Обновление в некоторой степени необходимо, возвращаясь из предпочтений (например, GPS после включения получает исправление), но, конечно, не после возвращения из Activity в качестве временизадержка перерисовки экрана отвлекает и замедляет рабочий процесс моего приложения.
Может кто-нибудь посоветует, как справиться с этим в моем onResume (), чтобы избежать всех вызовов setupWebview.
Вот код из моего onResume () в моей основной деятельности:
@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();
}