6

Wenn ich von einer Aktivität zu einer anderen wechseln gehe, wird für 2 Sekunden ein weißer Bildschirm angezeigt. Ich verwende diesen Code:Der weiße Bildschirm wird beim Wechseln zwischen den Aktivitäten angezeigt.

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

Wie kann ich dieses Problem beheben?

+1

zeigen Sie Ihre zweite Aktivität XML und Java-Datei. –

+0

Hallo Divya! ! – Piyush

+0

Haben Sie Web Services in SecondActivity? – Amsheer

Antwort

0

Versuchen Hinzufügen intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); vor dem Aufruf startActivity(intent);

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

zur Verwendung nächste Aktivität Flagge gehen

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

Was ist die Absicht von finish()? –

+0

zu beenden() aktuelle Aktivität –

+0

Ich möchte meine aktuelle (erste) Aktivität nicht beenden. – androidXXX

0

Try intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)

0

Verwendung finish hinzufügen, wenn Sie die Aktivität bedeutet löschen möchten, wenn du drückst zurück, dann gibt es keinen Stapel Aktivität.

Sie wollen also löschen dann verwenden Sie finish sonst verwenden Sie es nicht.

1

Wenn Ihre Aktivität komplexere Layouts enthält/großformatiges Hintergrundbild enthält, wird das Rendering ausgeführt, sodass nur diese weiße Seite angezeigt wird. Wenn Sie diese Zeitverzögerung entfernen möchten, verwenden Sie PNG-Bilder mit geringer Größe und löschen Sie Layout-Designs.

2

Wenn Ihre Aktivität komplexere Layouts enthält, verwenden Sie nach dem Setzen des Flags nicht finish(). Verwenden Sie FLAG_ACTIVITY_CLEAR_TOP and _TASK statt und es wird lösen Ihre problem.This für mich funktionierte perfekt

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

oder verwenden Sie einfach wie unter

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

+0

Leider beendet es nicht Ihre aktuelle Aktivität. – Galya

1

Durch die Verwendung von FLAG_ACTIVITY_NEW_TASK Sie bekommen weißen Bildschirm, entfernen das benutze dies. Es wird klappen.

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

Erstellen Sie ein Thema wie folgt aus:

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

dieses Thema Nehmen, um Ihre zweite Aktivität

+1

Das hat für mich funktioniert :) – Burf2000

+0

Arbeitete auch für mich. Vielen Dank. – Ilber

+0

was das eigentlich tun? –

1

Während von ActivityOne zu ActivityTwo Schalt, bis ActivityTwo onCreate Methode Standard-Hintergrund ausgeführt wird gezeigt, das ist der weiß/schwarze Bildschirm. Gute Praxis ist es, in onCreate keine schwere Operation durchzuführen. Um das Problem zu beheben, legen Sie wie unten gezeigt einen transparenten Hintergrund für ActivityTwo fest.

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

In Manifest Set oben Thema

<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>