変更 - android 画面遷移 複数




すでにログインしている場合は、ログインアクティビティを正しくスキップしてください (3)

ランチャーアイコンは現在、ログインアクティビティを開始します。 SharedPreferencesにログインした状態を保存しました。 UIアクティビティを適切にスキップしてUIの不具合を起こさずにメインアクティビティにまっすぐに進む方法はありますか? onCreate() finish()を含む既存のソリューションはすべて、ログインアクティビティのタイトルを短時間表示するか、またはその他の簡単な空白の画面UIの不具合を引き起こします。


MainActivityまたはLoginActivityを開くことを決めるUIを持たないランチャーを用意してください。 UIを宣言することはできません:

android:theme="@android:style/Theme.NoDisplay"

他にも2つの解決策があります。

あなたのランチャーをmainActivityにして、ユーザーがログインしているかどうかをチェックするようにしてください。そうでない場合は、loginActivityにリダイレクトしてください。

もう一つの方法は断片を扱うことです。 mainFragmentとloginFragmentの両方をロードできる基本アクティビティがあります。 参考: https://developer.android.com/training/basics/fragments/index.html : https://developer.android.com/training/basics/fragments/index.html


スプラッシュ画面のアクティビティがある場合は、ログイン状態を確認することもできます。 スプラッシュ画面は、アプリが読み込まれたときに停止していないことをユーザーに知らせるために、またアプリを適切な画面にリダイレクトするために使用することもできます。

私は初めてこの素晴らしいガイドを作成しました: https://www.bignerdranch.com/blog/splash-screens-the-right-way/ : https://www.bignerdranch.com/blog/splash-screens-the-right-way/


主な活動では、ユーザーがヌルでないかどうかを確認してから家に出る

firebaseAuth = FirebaseAuth.getInstance();

FirebaseUser user = firebaseAuth.getCurrentUser();

if (user != null) {
    finish();
    startActivity(new Intent(MainActivity.this, UserHomeActivity.class));
}




android-launcher