使用服务检查用户是否在Android中具有有效会话

时间:2015-10-29 10:58:52

标签: android service

此点我的应用程序如下所示:

SplashScreen - > LogInScreen - > TextActivity

在LogInScreen中,我检查用户是否仍然处于活动状态(表示已经登录)或者是否有有效会话,如果可以,则启动下一个活动。

现在我想改变它: SplashScreen - > TextActivity

用户正在TextActivity工作。如果用户必须再次登录(可能他还没有登录一段时间),我想查看Service

使用Service,正确的方法吗? 如果用户必须再次登录,我可以关闭所有Activity并启动LogInScreen吗?

我在纪录片中读到即使被叫活动被销毁,Service仍在进行中。但我不能从服务中返回一些东西吗?

如何清楚我想做什么。

亲切的问候!

2 个答案:

答案 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();
    }

就是这样。

只有一次登录。 检查此链接......

http://androidlift.info/2015/10/05/sharedpreferences/