2

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

我可以通过存储 in 来检查用户是否已注册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

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

4

1 回答 1

2

我不确定应该从哪里开始注册活动(在 super.onCreate(savedInstanceState) 之前还是之后?)

在执行诸如,等打开功能时,您应该将您的super()呼叫作为第一个呼叫。这样,该函数可以执行呼叫所需的所有操作,以使该函数准备好。这并不总是一个问题,但首先拨打电话更安全。在您进行清理(例如保存数据)之后,应该调用诸如 、 等整理功能。onCreate()onResume()super()onBackPressed()finish()super()

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

制作RegistrationActivity启动器Activity并检查用户是否已注册,如果已注册,则启动MainActivityelse 显示您的注册码或在这种情况下执行的任何操作。

用户可以通过按后退按钮进入 MainActivity

请参阅上一个解决方案。如果MainActivity只是从那开始,RegistrationActivity那么这将不是问题。

检查SharedPreferences以查看用户是否已注册不应造成太多延迟,因此您可以在为此创建用户之前执行此操作layoutActivity转到MainActivity他们是否已注册。如果由于某种原因您注意到有很多延迟,那么您可以在检查是否已注册时制作一个启动屏幕以显示您的徽标或其他内容,然后通过转到 registration 或 main 采取适当的措施Activity

于 2013-09-20T22:47:08.483 回答