Android - Splash,Intro,Sign In,Main

时间:2016-11-14 22:41:58

标签: android startup

我正在尝试为Android应用程序实现以下工作流程:

  1. 如果应用程序启动,我想显示启动画面(使用 此实施:Splash screens the right way仅适用于 应用启动
  2. 如果我第一次打开应用程序 显示介绍(我考虑使用此库:AppIntro
  3. 如果用户未登录,我想显示登录活动
  4. 否则我想展示主要活动
  5. 理论上我认为我知道如何做到这一点。因此启动画面没有问题,使用共享首选项显示介绍一次也没问题,使用Firebase Auth检查登录状态也没问题。所以gettig不同的条件是没有问题的。

    但实际上我遇到问题的方法是如何连接单个活动。

    我应该使用splashscreen活动作为某种引导程序并在那里开始相应的活动吗?

    SplashActivity的伪代码:

    public class SplashActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            showCorrectActivity();
        }
    
        private void showCorrectActivity() {
            if(introExecuted) {
                if(userSignedIn) {
                    startActivity(main);
                } else {
                    startActivity(signIn);
                    showCorrectActivity();
                }
            } else {
                startActivity(intro);
                showCorrectActivity();
            }
        }
    }
    

    或者我应该实现主要活动是“主”的某种流程?:

    启动SplashActivity,重定向到main,检查主电源onCreate()是否已显示intro,相应地启动,如果需要,继续从main开始登录。

    还是一种完全不同的方法?任何最佳做法?

    我在这里度过了一段难过的时光,所以非常感谢你提出任何建议!

1 个答案:

答案 0 :(得分:0)

在我看来,你的方法是正确的。您可以使用splashScreen的时间来决定应该去哪个活动,这样用户就不会等待。

唯一一种情况,当我不这样做时,如果在你的飞溅中你必须异步调用Web服务。这将使用户的开始变慢。