Quando si utilizza l'overridePendingTransition, la modifica delle visualizzazioni UI nell'attività chiamata è molto lenta

pochi giorni fa, ho avuto un problema con l'aggiornamento di un'icona di menu della Action Bar base al risultato di un AsyncTask : l' aggiornamento di Action Bar Menu Item a causa del risultato di AsyncTask senza indugio

Ora ho capito che questo problema non è affatto legato ad un AsyncTask o ad una Action Bar . Il problema si verifica anche se desidero modificare un TextView o qualsiasi altra View .

  • Android: apportre modifiche alla vista principale di un button
  • Inizializzazione del lettore di YouTube in Frammento
  • Iab consumePurchase () non funziona più per la risposta statica android.test.purchased
  • android - ArrayAdapter.createViewFromResource (int, View, ViewGroup, int): 355 NullPointerException
  • Problema di layout di Android con i pulsanti sotto WebView
  • Soluzione semplice di Android webrequest
  • Dopo un certo tempo di prova ed errore mi sono reso conto che il problema è causato da overridePendingTransition che utilizzo nell'attività che chiama la seconda Activity (where voglio cambiare l'icona):

    Prima Activity (in un metodo onItemClick):

     @Override public void onItemClick(View view, int position) { ... Intent intent = new Intent(getActivity(), SecondActivity.class); ... startActivityForResult(intent, anyValue); getActivity().overridePendingTransition(R.anim.slide_in_right, R.anim.no_animation); } 

    L'animation sembra così:

     <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="@android:integer/config_shortAnimTime"/> </set> 

    Ecco come appare l'AsyncTask (onPostExecute) della seconda attività:

     @Override public void onPostExecute(String result) { super.onPostExecute(result); if (mMenu != null) { if (result.equals("no favorite")) { ... mMenu.findItem(R.id.action_favorite).setVisible(false); mMenu.findItem(R.id.action_no_favorite).setVisible(true); } else { ... mMenu.findItem(R.id.action_favorite).setVisible(true); mMenu.findItem(R.id.action_no_favorite).setVisible(false); } } 

    Come spiegato, invece di passare da due icone del menu, è ansible utilizzare anche un TextView e impostare il text in base al risultato – il problema rimane.

    Sai come posso cambiare l'animation senza avere questo strano ritardo nella mia seconda Activity ?

  • Implementazione di una gomma in un'applicazione di disegno di Android - path nero e quindi trasparente
  • Android SDK - Media Player Video da URL
  • Modificare lo stile di AlertDialog
  • Errore di lavoro con la biblioteca Jackson post-obfuscation utilizzando Proguard
  • codice per aggiungere marcatori a mappe utilizzando android google maps v2
  • Rileva un pizzico di dito tramite JavaScript su iPhone e Android
  • One Solution collect form web for “Quando si utilizza l'overridePendingTransition, la modifica delle visualizzazioni UI nell'attività chiamata è molto lenta”

    Controlla il tuo file integer.xml Rendi il valore di config_shortAnimTime più piccolo secondo le tue esigenze. Il suo in millisecondi. Preferisco farlo 1000 (1 sec).

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.