我正在开发一个需要用户登录的Android应用程序(实际上,他们只需要提供用户名,因为不需要身份验证......但将来会改变)。
我设法实现了这一点,但我不确定它是否是最佳方式。我使用LoginActivity
和
android:noHistory="true"
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
在LoginActivity
的{{1}}方法中,我检查onCreate
中存储的布尔值isFirstStart
。如果该值不存在,则必须是该应用的第一个开始,因此我让SharedPreferences
设置所有内容,执行登录,然后使用以下命令启动LoginActivity
:
MainActivity
我使用额外的,以便我可以在我的主要活动中打开导航抽屉,如果它是第一次开始。在此阶段,我还将布尔值存储为Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.putExtra(MainActivity.EXTRA_ISFIRSTSTART, isFirstStart);
startActivity(intent);
中的false
。
如果SharedPreferences
已作为isFirstStart
存在,我会使用相同的方法立即启动false
。
对我而言,这似乎并不是最有效的方法 - 即使在大多数时间都不会使用,也会在每次启动时启动MainActivity
。
有什么想法吗?