6

Lorsque je passe d'une activité à une autre, un écran blanc s'affiche pendant 2 secondes. J'utilise ce code:L'écran blanc s'affiche pendant le basculement entre les activités

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

Comment puis-je résoudre ce problème?

+1

montrer votre deuxième fichier xml activité et java. –

+0

Bonjour Divya! ! – Piyush

+0

Avez-vous des services Web dans SecondActivity? – Amsheer

Répondre

0

Essayez d'ajouter intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); avant d'appeler startActivity(intent);

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

Pour aller à la prochaine utilisation activité drapeau

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

Quelle est l'intention de finish()? –

+0

pour terminer() activité en cours –

+0

Je ne veux pas finir ma (première) activité en cours. – androidXXX

0

Essayez d'ajouter intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)

0

utilisation finish si vous voulez signifie effacer l'activité lorsque vous appuyez sur alors il n'y a pas de pile d'activité.

Donc, vous voulez effacer puis utiliser finish sinon ne pas l'utiliser.

1

Si votre activité contient des mises en page plus complexes/contient une image d'arrière-plan de grande taille, le rendu est nécessaire, de sorte que seule la page blanche est affichée. Si vous souhaitez supprimer ce délai, utilisez des images png de faible taille et effacez les modèles de mise en page.

2

Si votre activité contient des mises en page plus complexes, n'utilisez pas finish() après avoir défini l'indicateur. Utilisez FLAG_ACTIVITY_CLEAR_TOP and _TASK au lieu et il résoudra vos problem.This a fonctionné pour moi parfaitement

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

ou utiliser simplement comme ci-dessous

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

+0

Malheureusement, il ne termine pas votre activité actuelle. – Galya

1

En utilisant FLAG_ACTIVITY_NEW_TASK vous obtenez écran blanc, retirez C'est comme ça. Ça va marcher.

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

Créer un thème comme celui-ci:

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

Appliquer ce thème à votre deuxième activité

+1

Cela a fonctionné pour moi :) – Burf2000

+0

A travaillé pour moi aussi. Je vous remercie. – Ilber

+0

qu'est-ce que cela fait réellement? –

1

Lors de la commutation de ActivityOne à ActivityTwo, jusqu'à ce que la méthode ActivityTwo onCreate est exécuté arrière-plan par défaut est affichée qui est l'écran blanc/noir. Une bonne pratique est de ne pas faire de grosses opérations dans onCreate. Pour résoudre le problème, définissez un arrière-plan transparent sur ActivityTwo comme indiqué ci-dessous.

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

En jeu Manifest ci-dessus thème

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