2010-11-18 5 views
6

トピックで述べるように、別のアクティビティがフォアグラウンドに来たとき、または方向が変更されたときにWebViewをリロードしないようにしたい。その理由は、WebViewコンテンツがJavascript/AJAXによってほぼ完全に生成されるためです。このメソッドはもはや復元しないことに注意してくださいWebViewのrestorePictureメソッド - webviewによるページのリロードの防止

:フォーラムのカップルに検索した後、私は多くの人が「ステートセーブ」と「restoreState」メソッドを使用することを示唆したが、私はドキュメントを見たとき、それが言う判明しましたこのWebViewのデータを表示します。表示データの保存と復元については、savePicture(Bundle、File)およびrestorePicture(Bundle、File)を参照してください。

それは次のように、ここで私はそのsavePictureとrestorePictureを使用していた:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

...いくつかの他のライン....

 setContentView(R.layout.main); 
     mWebView = (WebView) findViewById(R.id.webview); 

     if (savedInstanceState == null){ 
      loadInicialWebUi(); 
     }else{ 
      mWebView.restoreState(savedInstanceState); 
      boolean restoredPic = mWebView.restorePicture(savedInstanceState, new File("savedDisplayWebView.temp")); 
      Log.d(TAG, "restored Picture:" + restoredPic); 
     } 
    } 

@Override 
protected void onSaveInstanceState(Bundle savedInstanceState) { 
    mWebView.saveState(savedInstanceState); 
    boolean savedPic = mWebView.savePicture(savedInstanceState, "savedDisplayWebView.temp"); 
     Log.d(TAG, "saved Picture:" + savedPic); 
    super.onSaveInstanceState(savedInstanceState); 
} 

よく、これらのログはなかったがそれは画像を保存することを明らかにしたが、復元できなかった。私はファイルの参照について何かがあるかもしれないと思うが、私は状態を保存するときに作成したファイルの参照を取得するより良い方法を考えることができませんでした。

誰もが興奮していますか? 私は手がかり/提案を感謝します。 ありがとうございます。

マヌエル。

答えて

0

私はonCreate()にページをロードし、マニフェストにあなたの活動にこの属性を置く:

android:configChanges="orientation|keyboardHidden" 

これは、とき向きの変更を再起動してから、あなたの活動を防ぐことができます。あなたのアクティビティがonCreate()のページを読み込むので、別のアクティビティをフォアグラウンドに持ってきても、ページをリロードすることはできません。

+0

私は他の記事を読むと画面の向きが変わることはありますが、同じタスクを使用して履歴を有効にしてアクティビティ(特にVoiceRecognition)を開くという意図を送信すると、すぐにそれが戻ってくると、動的に生成されたコンテンツが失われるため、その特定のメソッド(savePicture)に興味があったのです。 – mdelolmo

+0

申し訳ありませんが、WebViewが生成されたコンテンツを失っていたので、コードにいくつかのエラーがありました。今はOKですが、私はまだこのsavePictureとrestorePictureメソッドについて興味があります。 – mdelolmo

関連する問題