当前位置:  开发笔记 > Android > 正文

Android多个WebView保存实例

如何解决《Android多个WebView保存实例》经验,为你挑选了1个好方法。

我尽量保存和恢复的3状态WebViews中使用我的活动onSaveInstanceState()restoreState()我的方法WebViewonCreate().当我只有一个时可以正常工作WebView,但有3个WebViews保存,看起来它只是最后一个保存计数并覆盖其他保存; 因此,当我使用该restoreState()方法时onCreate(),第一个WebView具有第三个的内容而WebView另外两个是空的.

以下是我的活动代码示例:

@Override 
public void onSaveInstanceState(Bundle outState) {
  ((WebView)findViewById(R.id.webview1)).saveState(outState);
  ((WebView)findViewById(R.id.webview2)).saveState(outState);
  ((WebView)findViewById(R.id.webview3)).saveState(outState);
}

@Override
public void onCreate(Bundle savedInstanceState) {
    ((WebView)findViewById(R.id.webview1)).restoreState(savedInstanceState);
    ((WebView)findViewById(R.id.webview2)).restoreState(savedInstanceState);
    ((WebView)findViewById(R.id.webview3)).restoreState(savedInstanceState);
}

我应该使用一些技巧为每个视图使用另一个包吗?我在代码中的其他地方做错了导致这种情况还是标准行为?



1> Prashast..:

第二次电话会saveState()覆盖第一次通话中保存的内容,第三次通话会覆盖第二次通话的内容.在onSaveInstanceState()捆绑执行结束时,只包含第3个WebView状态.

这就是为什么当你恢复第3个状态WebView时恢复到第1个状态WebView.

创建你的每一个的新的组合对象WebViews,并把它们放到outState Bundle使用对象这给出了每个不同的密钥Bundle:

public void putBundle (String key, Bundle value)

在基于3个键onCreate()获取Bundles并恢复状态.

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有