Решение, которое я всегда принимаю, заключается в создании третьего занятия SplashScreenActivity
<activity
android:name=".activities.SplashScreenActivity"
android:theme="@style/SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Это не что иное, как загрузка действий, где вы можете создать экземпляр всего, что вам нужно в приложении, и где вы можете сделать эту логику.
Вы можете, например, назвать это в SplashActivity
OnCreate
:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(/*logics to see if user is logged*/) {
startActivity(SplashScreenActivity.this, MainActivity.class);
}
else {
startActivity(SplashScreenActivity.this, LoginActivity.class);
}
finish(); //finish the splash activity.
}
Еще один маленький трюк:)
Ссылка от PPartisan в комментарии: Как реализовать SplashScreen
Я всегда делаю это activity
Без макета , чтобы у вас не было этой надоедливой "черной вспышки экрана" при первом запуске приложения. Чтобы сделать это, как вы можете видеть, я указал theme
в манифесте этого действия, где я simply
установил это:
<style name="SplashTheme" parent="AppTheme">
<item name="android:windowBackground">@drawable/background_splash</item>
</style>
, где этот ресурс - не что иное, как drawable
с background
(например, белым фоном и логотипом в центре).
Таким образом, у вас не будет этой черной вспышки при запуске приложения.
Удачи!