多くのスレッドを検索しましたが、まだ質問に対する答えが見つかりません。Android
を使用するアプリに取り組んでいますWebView
。
私はonSaveInstanceState()
andを使用して、次のように状態onRestoreInstanceState()
を保存します。WebView
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
webView.saveState(savedInstanceState);
}
と
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
webView.restoreState(savedInstanceState);
}
私もこれを持っていますonCreate()
:
public void onCreate(Bundle savedInstanceState) {
... other code ...
if(savedInstanceState != null){
webView.saveState(savedInstanceState);
}else{
webView.loadUrl("http://mypage");
}
}
問題:復元しても、変数/環境/ワークスペースWebView
がまったく復元されないようです。Javascript
アプリがバックグラウンドで強制終了されてから復元されると、Javascript 全体がすべてのオブジェクト/変数とともに失われます。javascript コードはwindow.utilitiesPack
、window.eventHandlers
、window.automation
、 などの名前空間であり、未定義です。またJQuery
、他の JavaScript プラグインも使用されています。それらはすべて、状態の復元後に未定義のようです。基本的にJavascript全体は復元されません。
これが実際の状態であることを誰かが確認または反証できますか (Javascript は保存されません)? JavaScriptワークスペース全体が保存されない場合、正確には何がWebView.saveState()
保存されますか? Javascript オブジェクトを保持するために既存の API を使用する簡単でエレガントな方法はありますか?
//================================================ ======
Update1:したがって、問題は残ります。最も重大な問題は次のとおりです。
結果のためにカメラを起動していIntent
ます。写真が撮影されると、アプリはアクティビティに戻り、WebView
Javascript を使用して HTML5LocalStorage
をいくつかのデータ変数で更新することになっています。
Camera Activity が表示されている間、メインの ActivityWebView
は強制終了されるため、WebView に戻ると、Javascript がなくなり、Android コードから呼び出すことができる関数がなくなります。これは で毎回発生しGalaxy S3
ます。他の電話ではまだ発生しますが、写真を撮るたびに発生するわけではありません.
ここで何をすべきかわからない。どういうわけか、カメラの意図で写真を撮っている間、状態を保持するために WebView でメインのアクティビティを作成する必要があります。これを達成する方法を知っている人はいますか?