Android:创建“首次使用者”活动

时间:2013-09-20 22:41:40

标签: android android-activity

我希望为第一次运行我的应用的用户注册一项活动。我不希望用户能够通过此注册活动,如果他不想注册,他必须关闭该应用。

我可以通过存储SharedPreferences来检查用户是否已注册,这似乎没有任何问题。那么到目前为止我在MainActivity中的所有内容:

public void onCreate(Bundle savedInstanceState) {
    if (needsRegistration()) {
        Intent intent = new Intent(this, RegistrationActivity.class);
        startActivity(intent);
    }

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ...
}

我遇到以下问题:

  • 我不确定在哪里开始注册活动(super.onCreate(savedInstanceState)之前或之后?)
  • MainActivity似乎在后台继续工作并产生错误(因为用户未注册)
  • 用户可以通过按后退按钮
  • 转到MainActivity

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

  

我不知道应该在哪里开始注册活动(在super.onCreate(savedInstanceState)之前或之后?)

在执行super()onCreate()等开放功能时,您应该将onResume()调用作为第一个调用....这样,该函数可以执行{{{{{ 1}}调用需要为函数做好准备。这并不总是一个问题,但首先打电话更安全。完成诸如super()onBackPressed()之类的完成功能......在进行清理后应该进行finish()调用,例如保存数据。

  

MainActivity似乎在后台继续工作并产生错误(因为用户未注册)

启动super()启动器RegistrationActivity并检查用户是否已注册,如果是,请启动Activity否则会显示您的注册码或本案例中的任何内容。

  

用户可以通过按后退按钮

转到MainActivity

请参阅上一个解决方案。如果MainActivity仅从MainActivity开始,那么这不会成为问题。

检查RegistrationActivity以查看用户是否已注册不会造成太大延迟,因此您可以在为SharedPreferences创建layout之前执行此操作并转到{ {1}}如果他们已注册。如果由于某种原因你注意到了很多延迟,那么你可以制作一个闪屏来显示你的徽标或其他什么,当你检查注册时,然后通过转到注册或主Activity采取适当的行动。 / p>