内容简介:恢复WebView状态不会为您执行此操作,并且当您的应用程序尝试解除其中一个时,可能会崩溃,从而导致NullPointerException.翻译自:https://stackoverflow.com/questions/5437344/save-restore-state-of-android-webview
我有一个简单的webView应用程序,它从我们的网站加载一个页面,其中包含我们的现场人员应该每天访问的位置和电话号码.它提供了启动导航或拨打电话的钩子.从外部活动返回时,应用程序崩溃.点击手机的主页按钮,然后拨打手机,然后返回到应用程序工作正常.
这是代码……
更新2 – 不再崩溃,返回时webview为空
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(); }
恢复WebView状态不会为您执行此操作,并且当您的应用程序尝试解除其中一个时,可能会崩溃,从而导致NullPointerException.
翻译自:https://stackoverflow.com/questions/5437344/save-restore-state-of-android-webview
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 使用二进制保存用户状态
- PHP 使用二进制保存用户状态的实例
- 保存和恢复模型
- Android 文件保存
- 通过按钮单击保存PhpSpreadSheet
- javascript – Backbone.js – 在上一个保存前保存模型POST(创建)而不是PUT(更新)请求时出现问题
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
GUI设计禁忌2.0
Jeff Johnson / 盛海艳 等 / 机械工业出版社 / 2008 / 49.00元
本书描述软件开发人员在设计图形用户界面(GUI)时经常犯的“禁忌”,并提出避免这些错误的基本原则和理论依据。本书将GUI禁忌分为7种类型:GUI控件禁忌、导航禁忌、文字禁忌、图形设计和布局禁忌、交互禁忌、响应性禁忌以及管理禁忌,并分别进行详述。 本书编排独特,条理清晰,针对性极强,是不可多得的GUI设计优秀资源。本书适合软件开发人员、web站点设计人员、开发经理、用户界面设计人员等阅读。一起来看看 《GUI设计禁忌2.0》 这本书的介绍吧!