我正在尝试从Activity中实现返回,而无需刷新屏幕。据我所知,有4种可能的状态需要处理:
我的问题是,从我的应用程序中的其他活动返回后,每次调用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();
}
答案 0 :(得分:0)
使用boolean
标记并使用它来跳过对setupWebView()
的调用 - 也许是onResume()
方法中的大多数代码 - 如果您知道它是安全的跳过它。您是致电startActivity()
进入位置偏好设置屏幕的人,因此您就知道是否需要致电setupWebView()
。