あるアクティビティから別のアクティビティに移動すると、白い画面が2秒間表示されます。私はこのコードを使用しています:
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
この問題を解決するにはどうすればよいですか?
次のようなテーマを作成します。
<style name="YourTheme" parent="YourParentTheme">
<item name="Android:windowDisablePreview">true</item>
</style>
このテーマを2番目のアクティビティに適用します
このリンクの詳細: http://www.tothenew.com/blog/disabling-the-preview-or-start-window-in-Android/
ActivityOneからActivityTwoに切り替えている間、ActivityTwo onCreateメソッドが実行されるまで、デフォルトの背景(白/黒の画面)が表示されます。 onCreateで重い操作を行わないことをお勧めします。この問題を修正するには、以下に示すように、透過的な背景をActivityTwoに設定します。
<style name="YourTheme" parent="YourParentTheme">
<item name="Android:windowBackground">@Android:color/transparent</item>
</style>
テーマの上に設定されたマニフェスト
<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>
アクティビティにさらに複雑なレイアウトが含まれている場合は、フラグを設定した後にfinish()
を使用しないでください。代わりに_FLAG_ACTIVITY_CLEAR_TOP and _TASK
_を使用すると、問題が解決します。これで問題は解決しました。
Intent intent = new Intent(this, SecondActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.l̥FLAG_ACTIVITY_CLEAR_TOP ); startActivity(intent);
または単に以下のように使用します
Intent intent = new Intent(this, SecondActivity.class); startActivity(intent);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
を呼び出す前に、startActivity(intent);
を追加してみてください
Intent intent = new Intent(this, SecondActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
アクティビティに、より複雑なレイアウトが含まれている/大きなサイズの背景画像が含まれている場合は、レンダリングが必要になるため、その白いページのみが表示されます。その時間遅延を取り除きたい場合は、小さいサイズのpng画像と明確なレイアウトデザインを使用してください。
FLAG_ACTIVITY_NEW_TASKを使用すると、白い画面が表示されます。これを使用するように削除してください。それが動作します。
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
を追加してみてください
finish
を使用します。アクティビティをクリアする場合は、押し戻すとアクティビティのスタックがありません。
したがって、クリアしてからfinish
を使用します。それ以外の場合は、使用しないでください。
次のアクティビティに移動するには、フラグを使用します
Intent intent = new Intent(this, SecondActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);