Android Studio 3.4.0
我有一个应用,该应用在启动时会显示login activity
。用户将通过发送用户名和密码登录,并会收到JWT授权。
我已将此授权令牌存储在共享首选项中。他们注销后,我将从共享首选项中删除授权令牌。
但是,当用户启动应用程序时,我希望能够检查授权令牌是否已存储,如果授权令牌未显示login activity
或是否存在,则允许他们转到{{ 1}}。
所以看来我必须有一个活动,该活动将是正在加载的活动,该活动将进行检查并确定哪个活动将开始。
但是,由于检查共享的首选项将是一项非常快捷的操作,因此我实际上并不想显示任何UI,因为仅通过闪烁并转到下一个活动将毫无意义。
有什么办法可以进行一些无脑的活动,这些活动只会进行检查但不会显示任何UI。
在扩大版面之前,是否有必要在home activity
中进行检查?
我没有进行任何Facebook,Google或任何社交媒体登录。
只是想知道什么是最佳实践。
答案 0 :(得分:1)
我的应用程序中有类似的工作流程。我的方法如下。登录活动的布局被初始化为“正在加载,请稍候”视图。在显示的内容上,我使用AsyncTask来检查存储的令牌,并使用后端服务器对其进行验证,然后导航到主home活动,或将“ loading”片段替换为包含登录表单的片段。
答案 1 :(得分:1)
只需在onCreate()
之前的setContentView()
家庭活动中检查它,就像这样:
if (preferenceHelper.getAccessToken().isEmpty()) {
startActivity(Intent(this@HomeActivity, LoginActivity::class.java))
finish()
return
}
它不会导致任何闪烁出现。