6

Po przejściu z jednego działania do innego działania wyświetlany jest biały ekran przez 2 sekundy. Używam tego kodu:Podczas przełączania między działaniami wyświetlany jest biały ekran

Intent intent = new Intent(this, SecondActivity.class); 
startActivity(intent); 

Jak mogę rozwiązać ten problem?

+1

pokazać swoją drugą aktywność XML i Java pliku. –

+0

Witaj Divya! ! – Piyush

+0

Czy masz jakieś usługi internetowe w SecondActivity? – Amsheer

Odpowiedz

0

spróbuj dodać intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); przed wywołaniem startActivity(intent);

Intent intent = new Intent(this, SecondActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 
0

Aby przejść do następnego działania użycia flagi

Intent intent = new Intent(this, SecondActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 
+0

jaki jest cel wykończenia()? –

+0

to finish() current activity –

+0

Nie chcę dokończyć mojej obecnej (pierwszej) aktywności. – androidXXX

0

Spróbuj dodać intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)

0

korzystanie finish jeśli chcesz wyczyścić aktywność znaczy kiedy ty naciskasz, a potem nie ma stosu aktywności.

Więc chcesz wyczyścić, a następnie użyć finish w przeciwnym razie nie używaj go.

1

Jeśli twoja aktywność zawiera bardziej złożone układy/zawiera obraz tła w dużym rozmiarze, wymaga renderowania, więc wyświetlana jest tylko biała strona. Jeśli chcesz usunąć to opóźnienie, użyj obrazów PNG o niskim rozmiarze i wyraźnych projektów układów.

2

Jeśli twoja aktywność zawiera bardziej złożone układy, po ustawieniu flagi nie używaj finish(). Użyj FLAG_ACTIVITY_CLEAR_TOP and _TASK zamiast i będzie rozwiązać twoje problem.This pracował dla mnie idealnie

Intent intent = new Intent(this, SecondActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.l̥FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent);

lub użyj po prostu jak poniżej

Intent intent = new Intent(this, SecondActivity.class); startActivity(intent);

+0

Niestety, nie zakończy to Twojej bieżącej aktywności. – Galya

1

Korzystając FLAG_ACTIVITY_NEW_TASK otrzymujesz biały ekran, usuwać to lubię tego używać. To będzie działać.

Intent intent = new Intent(this, SecondActivity.class); 
startActivity(intent); 
7

utworzyć motyw takiego:

<style name="YourTheme" parent="YourParentTheme"> 
    <item name="android:windowDisablePreview">true</item> 
</style> 

zastosować ten motyw do drugiego aktywności

+1

To zadziałało dla mnie :) – Burf2000

+0

Pracowałem też dla mnie. Dziękuję Ci. – Ilber

+0

co to właściwie robi? –

1

Podczas przełączania z ActivityOne do ActivityTwo, aż metoda ActivityTwo onCreate pobiera wykonywane domyślne tło jest pokazany, który jest biały/czarny ekran. Dobra praktyka to nie wykonywanie ciężkiej operacji w trybie onCreate. Aby naprawić problem, ustaw przezroczyste tło dla ActivityTwo, jak pokazano poniżej.

<style name="YourTheme" parent="YourParentTheme"> 
<item name="android:windowBackground">@android:color/transparent</item> 
</style> 

w jawnym zestawu powyżej tematu

<activity 
      android:name=".ActivityTwo" 
      android:theme="@style/YourTheme"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
</activity> 
Powiązane problemy