如何创建启动画面来管理 activity 意图

How to create Splash screen to manage activity intents

我想在我的 app.First 中创建 3 个活动,第一个是 loginActivity,第二个是 formActivity(包含要由用户填写的表单),第三个是 ProfileActivity。我想按照以下方式安排这些活动-

  1. 用户在第一次启动应用程序时需要登录,之后他们将被定向到 formActivity。

  2. 如果用户已经登录,则必须在启动应用程序时出现 formActivity 而不是登录屏幕。

  3. 当用户在 formActivity 中填写表单时,他们将被定向到 profileActivity。

  4. 如果用户已经登录并填写了表单(在formActivity中),那么在启动应用程序时他们必须看到 profileActivity 。

请帮助我了解如何在启动画面中管理我的活动的这些意图行为??

我认为您可以在共享首选项中保存用户状态并在启动画面中查看 activity。 例如,“state”变量 = 1 表示用户尚未登录,2 表示已登录但未填写表单等等

共享首选项可能是检查用户是否已经登录的好方法,您可以像这样使用它:

SharedPreferences sp = this.getSharedPreferences( "login", Context.MODE_PRIVATE );
sp.edit().putString( "idt", typ.getString( "id" ) ).apply();

Intent it = new Intent( this, FormActivity.class );
startActivity( it );
finish();

然后在启动应用程序的 Your Splash 上检查共享首选项是否存在:

SharedPreferences sp = getSharedPreferences( "login", MODE_PRIVATE );
    String Id = sp.getString( "idt", "" );=
    assert Id != null;
    if (!Id.equals( "" )) {
        startActivity( new Intent( this, TeacherDash.class ) );
        finish();
    }

如果未登录,那么您会将用户重定向到登录 activity。

这同样适用于用户已经填写了表格然后用户将被重定向到配置文件 activity。

在我的应用程序中,用户需要先进行身份验证才能开始使用该应用程序。我在 startupActivity

中有这段代码
access_token = sharedPrefidg.getString("access_token", "");
if (!access_token.equalsIgnoreCase("")) {
   Intent i = new Intent(SplashScreen.this, MainActivity.class);
   i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
   startActivity(i);
   finish();
}  else  {
  Intent i = new Intent(SplashScreen.this, Login.class);
  i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
  startActivity(i);
  finish();
}