2016-08-30 12 views
5

że dwa fragmenty & B.
I przełączane od A do B, stosując następujący KOD:ekranu zawiesza się podczas popBackStack() jest wywoływana

FragmentManager fragmentManager; 
    FragmentTransaction transaction; 
    fragmentManager = getActivity().getFragmentManager(); 
    transaction = fragmentManager.beginTransaction(); 
    transaction.setCustomAnimations(R.animator.enter_anim, R.animator.exit_anim,R.animator.popenter, R.animator.popexit); 
    transaction.replace(R.id.fragmentLayout, new B()) 
      .addToBackStack("tag").commit(); 

B zawiera operacje SQLite (SugarORM).
Podczas przełączania z A na B ekran zawiesza się, nawet jeśli używam & IntentService dla operacji na db. Również po naciśnięciu przycisku wstecz [] ekran zamarza na kilka sekund, zanim przełączy się z powrotem na A z B.
Animacja popBackStack jest niewidoczna.
Próbowałem wyświetlać nieokreślony pasek postępu w postaci & w widoku obrazu, ale też zamarzają one & wygląda to tak, jakby były statycznymi obrazami.

+1

Sprawdź, czy twoja FRAGMENT A ma jakiekolwiek blokady blokujące połączenia w onCreateView/onViewCreated. –

+0

opublikować AsyncTask. i możesz zobaczyć animację, zwiększając opóźnienie. – Nepster

+0

umieszcza logi we wszystkich twoich metodach w obu fragmentach i możesz dowiedzieć się, sprawdzając logi, podczas których bierzesz dwa procesy (między którymi 2 logi) tak długo i możesz poprawić przyczynę (szczególnie w onResume lub w onPause) Jeśli to możliwe wklej kod. –

Odpowiedz

1

Sprawdź ten artykuł na temat profilowania swój główny wątek: https://developer.android.com/studio/profile/traceview.html

to pokaże, co wyginanie główny wątek, który jest prawdopodobnie powodem zamrożenia.

Ponadto, postępuj zgodnie z instrukcjami @ NishantPardamwar dotyczącymi sprawdzania metod cyklu życia fragmentu, które działają w głównym wątku i są prawdopodobnymi winowajcami.

Powiązane problemy