2010-11-18 7 views
6

yeniden web görüntülemesini önlemek, başka bir aktivite ön plana gelir veya yönü değiştiğinde sadece zaman zaman benim WebView web sayfasını yeniden engellemek istiyoruz. Bunun nedeni, WebView içeriğinin neredeyse tamamen Javascript/AJAX tarafından üretilmesidir. forumlarda bir çift arama yaptıktan sonra ben birçok kişi "saveState" ve "restoreState" yöntemleri kullanmak önerdi öğrendim ama belgelere baktığınızda, diyor:WebView restorePicture yöntemi - Ben konuya dediğimiz gibi sayfa

bu yöntem artık geri unutmayınız Bu WebView için verileri görüntüle. Ekran verilerini kaydetmek ve geri yüklemek için savePicture (Paket, Dosya) ve restorePicture (Paket, Dosya) bölümüne bakınız.

Yani, burada ben savePicture ve restorePicture aşağıdaki gibi olduğunu kullanıyordum: iyi ....

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

... diğer bazı satırlar

 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); 
} 

Ve bu günlükleri vardı resmi kaydettiğini, ancak geri yükleyemediğini ortaya çıkardı. Dosya referansları hakkında bir şey olabileceğinden şüpheleniyorum, ancak devleti kurtarırken yarattığım Dosya'nın referansını almanın daha iyi bir yolunu düşünemedim.

Herkes heyecanlandı mı? Herhangi bir ipucu/öneriniz için minnettarım. Şimdiden teşekkürler.

El ile.

cevap

0

ben onCreate() sayfa yükleme ve manifest dosyanızda Etkinliğini bu niteliği koyardı:

android:configChanges="orientation|keyboardHidden" 

Bu zaman oryantasyon değişiklikleri yeniden çalışmasını Faaliyetinizi önleyecektir. Etkinliğiniz, sayfayı onCreate() numaralı sayfaya yüklediğinden, ön plana başka bir Etkinlik getirmeniz, sayfayı yeniden yüklemenize neden olmaz. Ben başka maddeler üzerine okurken Cevabınız için

+0

sayesinde, ekran yönü değişikliklerine ilişkin çalışacak, ama tarih olarak, etkin Aynı Görevi kullanarak, bir etkinlik (özellikle VoiceRecognition) açmak için bir niyet göndermek ve ne zaman ile geri döndüğü anda dinamik olarak oluşturulan içeriği kaybeder, bu yüzden bu özel yönteme (savePicture) ilgi duydum. – mdelolmo

+0

Üzgünüm, kodumda bazı hatalar vardı, böylece WebView oluşturulan içeriği kaybediyordu. Şimdi sorun değil, ama ben hala bu savePicture ve restorePicture yöntemlerini merak ediyorum. – mdelolmo