此点我的应用程序如下所示:
SplashScreen
- > LogInScreen
- > TextActivity
在LogInScreen中,我检查用户是否仍然处于活动状态(表示已经登录)或者是否有有效会话,如果可以,则启动下一个活动。
现在我想改变它:
SplashScreen
- > TextActivity
用户正在TextActivity
工作。如果用户必须再次登录(可能他还没有登录一段时间),我想查看Service
。
使用Service
,正确的方法吗?
如果用户必须再次登录,我可以关闭所有Activity
并启动LogInScreen
吗?
我在纪录片中读到即使被叫活动被销毁,Service
仍在进行中。但我不能从服务中返回一些东西吗?
如何清楚我想做什么。
亲切的问候!
答案 0 :(得分:0)
我不建议将服务作为后台任务运行,这几乎不会占用任何内存。
我假设您的Login部分向服务器发送请求以获取凭据,然后将您的用户登录到应用程序。 所以基本上我假设你有一台服务器,你正在发送请求并从服务器获得响应。
要检查用户是否具有有效会话,您只需检查会话是否已从服务器响应中过期。
答案 1 :(得分:0)
使用共享首选项,这将一劳永逸地解决您的问题。
首先,如果您使用服务器身份验证进行用户登录,则请求服务器进行身份验证,并使用其ID或密码返回结果并设置为共享首选项,并在下次访问应用程序时检查值是否已设置为共享偏好与否,如果已设置,则开始下一个活动。
sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
// Checking values for Keys Keyname, Keypass, Keyemail if available then get the strings values and set to respective EditTexts.
if(sharedpreferences.contains("Keyname") && sharedpreferences.contains("Keypass") && sharedpreferences.contains("Keyemail"))
{
// start your activity herein
}else {
Toast.makeText(MainActivity.this, "Shared Preference not available", Toast.LENGTH_LONG).show();
}
就是这样。
只有一次登录。 检查此链接......