我希望为第一次运行我的应用的用户注册一项活动。我不希望用户能够通过此注册活动,如果他不想注册,他必须关闭该应用。
我可以通过存储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)
之前或之后?)这样做的正确方法是什么?
答案 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>