Ho un TabActivity
con quattro schede (ciascuna è la propria attività). Ogni scheda definisce il proprio onCreateOptionsMenu
(e in alcuni casi, onPrepareOptionsMenu
). Quando viene caricata ciascuna scheda, viene avviato un numero AsyncTask
per recuperare i dati necessari per compilare l'elenco di tali schede.Strano comportamento del menu opzioni in TabActivity Android
Se si passa da una scheda all'altra rapidamente (mentre stanno ancora caricando) e quindi si preme il pulsante menu (mentre la scheda attuale è AsyncApiTask
ancora in esecuzione), sono in grado di visualizzare il menu delle opzioni errato.
Per esempio, diciamo che FooActivity
(scheda 1) ha un menu di opzioni con una voce "Aggiorna", e BarActivity
(scheda 2) ha un menu di opzioni con un "View All" oggetto. Se avvio l'app (con la scheda 1 attiva), passa rapidamente alla scheda 2, quindi al menu dei risultati, a volte viene visualizzata la voce "Aggiorna" (anziché la voce "Visualizza tutto" prevista).
Inoltre, mentre questo strano comportamento a volte si verifica solo al primo menù premere (e presse successive mostrano gli elementi a destra), a volte diventa "bloccato", e gli articoli errati mostrare su ogni pressione fino a quando posso passare schede.
Qualche idea su cosa potrebbe succedere? Non ho mai sentito di ciò che sta succedendo e non sono stato in grado di trovare buoni suggerimenti.
Questo è uno della lista apparentemente infinita di motivi per cui Detesto utilizzando le attività come il contenuto delle schede. Rendi le tue schede semplici Viste e disponi del tuo * singolo * 'onPrepareOptionsMenu()' per delegare un'implementazione basata sulla scheda attiva. – CommonsWare
Ah eccellente, è estremamente confortante sapere che non sto facendo qualcosa di terribilmente sbagliato per causare questo. Prenderò in considerazione questa soluzione. Grazie! – jakeboxer