Ho una visualizzazione Web che inizializzo con loadUrl in AsyncTask.doInBackground. Mi inizializzare come di seguito:Qual è la differenza tra widget post() e gestore()?
webView.post(new Runnable() {
@Override
public void run() {
webView.loadUrl(authURL);
}
});
AsyncTask viene eseguita come ultimo in Activity.onCreate(), il problema è che la maggior parte della pagina web tempo non viene caricato, vedo schermo bianco. Se sostituisco webView con il gestore, tutto va bene. Cosa mi manca qui?
Prima di chiamare loadUrl ho bisogno di recuperare questo URL dal server. So che introducendo un po 'più di complessità del codice, potrei farlo in onPostExecute. Sto iniziando a pensare che l'intero problema sia legato a ciò che dice doc per View.post(): "Questo metodo può essere richiamato dall'esterno del thread dell'interfaccia utente solo quando questa vista è collegata a una finestra.", Ma io non vedo come questo può accadere nel mio caso. – marcinj
Non sei sicuro di come siano collegate le tue viste, ma dovresti sicuramente chiamarlo da 'onPostExecute()'. La complessità aggiunta restituirà un elenco di URL o li salverà in un campo. Inoltre, potresti voler chiamare questo da 'onStart()' dove la creazione della vista è stata completata. –
grazie, userò onPostExecute – marcinj