Я перезапускаю приложение со следующим намерением:
Intent restartIntent = new Intent(context, MainActivity.class);
restartIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
restartIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(restartIntent);
Но при перезагрузке есть "белый" экран.
Вместо этого я хочу отображать собственный экран при перезапуске приложения.
Вы знаете, как этого добиться?
@Wojtek Приведенная ссылка касается компонента индикатора выполнения. Мне нужно отображать настраиваемый экран при перезапуске приложения.
Может быть, это может быть полезно stackoverflow.com/questions/8133118/… и stackoverflow.com/questions/15153345/…
@MatteoUgolotti спасибо, это не решает мою проблему
Возможный дубликат Как получить индикатор выполнения спиннинга при запуске приложения
@WojtekT мой вопрос не об отображении индикатора выполнения при загрузке данных, а об отображении отдельного экрана при перезапуске приложения
Вероятно, вы не можете отображать прогресс анимации, но вы можете создать заставку. Он будет стилизовать белое окно, которое у вас есть при перезапуске приложения. Отметьте этот android.jlelse.eu/… и этот plus.google.com/+AndroidDevelopers/posts/Z1Wwainpjhd
У меня была такая же проблема, и я решил ее, очистив стек вручную с помощью finishAffinity():
Intent restartIntent = new Intent(context, MainActivity.class);
startActivity(restartIntent);
finishAffinity();
Таким образом, переход к MainActivity не отображает пустой экран в течение короткого промежутка времени.
Если вам нужен экран загрузки, вы можете перейти к Activity с ProgressBar и использовать этот код в onCreate этого Activity.
Я знаю, что это не лучшее решение, но это единственный способ заставить его работать.
Чтобы избавиться от белый экран, который возникает из-за холодного запуска Android и появляется при загрузке приложения в память, вы можете добавить следующий элемент стиля в свой AppTheme.
<item name = "android:windowDisablePreview">true</item>
Теперь при запуске MainActivity вы можете отображать progressBar или что-то вроде представления заполнителя, пока ваши данные загружаются в фоновом режиме и после загрузки, скрывать прогресс / заполнители и т. д. Вы также можете создать промежуточное действие / представление что-то вроде SplashScreen, которое будет отображаться на restart Intent вместо использования progressBar в вашем MainActivity.
спасибо, ваш ответ помог мне на некоторое время избавиться от белого экрана перед запуском экрана.
Чтобы установить фоновый рисунок во время запуска активности, вы должны использовать что-то вроде этого:
<style name = "AppTheme.NoActionBar.SplashTheme">
<item name = "android:windowBackground">@drawable/splash</item>
</style>
в качестве темы мероприятия. Вместо белого экрана он покажет данную возможность рисования.
Вы смотрели на это? developer.android.com/reference/android/widget/ProgressBar