AsyncTask.doInBackground'da loadUrl ile başlattığım bir WebView var. Aşağıda gibi başlatılamıyor:Widget post() ile handler post() arasındaki fark nedir?
webView.post(new Runnable() {
@Override
public void run() {
webView.loadUrl(authURL);
}
});
AsyncTask(), sorun ben beyaz ekranı göreceksiniz, zaman web sayfasının en yüklü almaz olmasıdır Activity.onCreate son olarak yürütülür. WebView öğesini işleyici ile değiştirirsem, hepsi tamam. Burada neyi özlüyorum?
loadUrl çağrılmadan önce bu URL'yi sunucudan almam gerekir. Daha fazla kod karmaşıklığı tanıtarak bunu onPostExecute içinde yapabildiğimi biliyorum. Tüm sorunun, doc'ların View.post() için söylediği şeyle ilgili olduğunu düşünmeye başladım: "Bu yöntem, yalnızca bir Pencere'ye eklendiğinde UI iş parçacığı içinden çağrılabilir." Benim durumumda bu nasıl olabilir. – marcinj
Görünümlerinizin nasıl ekleneceğinden emin değilsiniz, ancak kesinlikle bunu onPostExecute() 'den çağırmalısınız. Eklenen karmaşıklık, bir URL listesi döndürecek veya bunları bir alana kaydedecektir. Ek olarak, bunu, görünüm oluşturma işleminin bitmiş olduğu garanti edilen 'onStart()' dan aramak isteyebilirsiniz. –
teşekkürler, onPostExecute kullanacağım – marcinj