【问题标题】:How to make Activity to start only once when the app is started for the first time?第一次启动应用时,如何让Activity只启动一次?
【发布时间】:2023-03-23 20:05:01
【问题描述】:

我有一个注册活动,我只想在应用第一次启动时启动一次。如果注册成功,第二次启动应用我想直接进入第二个Activity-FirstWindow。

提前谢谢你!

【问题讨论】:

标签: android


【解决方案1】:

第一次启动活动时:将真实值保存在 共享首选项,每次应用启动时检查共享首选项,如果 true 转到下一个活动 else 显示第一个活动(你的注册 页)

1.声明变量

SharedPreferences pref;
SharedPreferences.Editor editor;

2.在onCrete方法中

pref = getSharedPreferences("testapp", MODE_PRIVATE);
editor = pref.edit();

3.当用户注册成功时(点击注册按钮)

editor.putString("register","true");
editor.commit();

然后每次你可以检查:

String getStatus=pref.getString("register", "nil");
if(getStatus.equals("true"))
redirect to next activity
else
show registration page again

【讨论】:

    【解决方案2】:

    使用 Theme.NoDisplay 创建一个活动并将其设为您的启动器活动(在清单中为启动器设置意图过滤器)。在 onCreate 中,检查用户是否已注册并启动相应的活动。您可以将用户的状态(已注册/未注册)存储在数据库或 SharedPreferences 中。

    【讨论】:

      【解决方案3】:

      使用零活动来检查接下来要启动的内容,onCreate:

      SharedPreferences sp= getSharedPreferences("first_time", 0);
      
      ActivityZero.this.finish();
      
      if (sp.getBoolean("FirstTime", true))
         mainIntent = new Intent(ActivityZero.this, TutorialActivity.class);              
      else
         mIntent = new Intent(ActivityZero.this, MainActivity.class);
      
      ActivityZero.this.startActivity(mIntent);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-05
        • 2019-06-04
        • 1970-01-01
        • 2020-10-08
        相关资源
        最近更新 更多