сохранение / восстановление состояния веб-просмотра Android

У меня есть простое приложение webView, которое загружает страницу с нашего сайта с адресами и телефонными номерами, которые наши полевые ребята должны посещать каждый день. Он обеспечивает ловушку для запуска навигации или набора номера телефона. При возврате из внешней активности приложение дает сбой. Нажав кнопку «Домой» на телефоне, затем набрав номер, затем возврат в приложение работает нормально.

вот код ...

Обновление 2 - сбой больше не происходит, веб-просмотр пуст при возврате

public class VSIMobile_WebView extends Activity {
private static String PROVIDER="gps";
private WebView browser;
private LocationManager myLocationManager=null;
private TelephonyManager myTeleManager = null;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    browser=(WebView)findViewById(R.id.webview);
    myLocationManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE);
    myTeleManager=(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
    browser.getSettings().setJavaScriptEnabled(true);
    browser.addJavascriptInterface(new Locater(), "locater");
    browser.addJavascriptInterface(new JavaScriptInterface(this), "Android");
    if (savedInstanceState!=null){
        browser.restoreState(savedInstanceState);
    }else{ 
        browser.loadUrl("http://zzz.com");
        browser.setWebViewClient(new HelloWebViewClient());
    }
}

public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    }

@Override
public void onSaveInstanceState(Bundle outState) {
    //Toast.makeText(getBaseContext(), browser.getUrl(), Toast.LENGTH_LONG).show();
    browser.saveState(outState);
} 

@Override
protected void onRestoreInstanceState(Bundle state) {
    browser.restoreState(state);
    super.onRestoreInstanceState(state);
    //Toast.makeText(getBaseContext(), browser.getUrl(), Toast.LENGTH_LONG).show();
}


/* Did not work
public void onResume(Bundle inState){
    browser.restoreState(inState);
    super.onResume();   
}
public void onPause(Bundle outState) {
    browser.saveState(outState);
    super.onPause();
}
*/


@Override
public void onResume(){
    super.onResume();   
}


@Override
public void onPause() {
    super.onPause();
}
8
задан Alex K 1 May 2015 в 20:17
поделиться