java - 即使应用程序被销毁也保持 'logged in'

标签 java android sharedpreferences android-lifecycle

您好,我有一个应用程序,它严格要求即使在应用程序被销毁后也显示为“已登录”。如果应用程序被破坏然后重新加载(如果以前登录过)登录屏幕应该被绕过 > 直接到用户之前查看的页面。 (我已经处理了所有与 session 相关的变量)

我试过使用 Shared Preferences 但如果我手动销毁应用程序,它会返回到登录屏幕,我不能让这种情况发生。

我尝试在数据库中手动存储首选项(这可能是 Shared Preferences 所做的?)但它仍然加载登录 Activity ,当然因为这是我第一次加载的 Activity 。所以这个问题更多的是保持对用户始终在哪个 Activity 上的偏好,然后直接加载到这个 onResume()

我的问题:以前有人处理过这种情况吗?我应该如何处理预加载 Activity 。我在想,当我在登录屏幕中加载我的首选项时,我会检查以前的 Activity 首选项并简单地加载到其中(假设用户已登录)。

有没有更好的方法来解决这个问题?是否有更原生的方式动态加载到适当的 Activity 启动?

非常感谢任何帮助

编辑:好的,在发布这个之后我意识到我真正需要做的就是在 OnResume 中添加一个检查是否设置了适当的 session 变量。然后加载到 Activity 中,实际上就像 Akbari 在下面所说的那样。我已经将我的 Preferences 类回滚到使用标准的 Android SharePreferences 并且它现在工作得很好。对此感到高兴:)

简单地做这样的事情:

    // load preferences
    preferences.readPreferences();      

    // if preferences exist load straight to RecordActivity
    if (application.currentSessionId!=null) {
        Intent i = new Intent(getApplicationContext(), RecordActivity.class);
        startActivity(i);           
    }       

最佳答案

您可以在首选项中保存登录状态并在登录 Activity 的 onCreate() 方法中检查它

    @Override
    public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);SharedPreferences prefs;
    prefs = getSharedPreferences("your_pref", MODE_PRIVATE);

    boolean login_status = prefs.getBoolean("login_status", false);
    if (login_status) {
        Log.v(LOG_TAG, "UserInfo>>User already logged in");
        Intent intent = new Intent(this, HomeActivity.class);
        startActivity(intent);
        this.finish();
    }
}

在这里,它将检查登录状态,如果已经登录,则将用户重定向到下一个 Activity

关于java - 即使应用程序被销毁也保持 'logged in',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15151819/

相关文章:

java - 在 android 中使用微调器过滤 Listview

android - Azure 通知中心 - 从 token 提供程序获取的 token 错误

android - 将 DIP(Dependency Inversion) 应用于 Android Activity 类

c# - 在 Activity 之间共享数据(字符串),保存并将其添加到ListView C#Xamarin

android - SharedPreferences 总是在我现有的应用程序中获得默认值,但是在创建新应用程序时它可以

java - 在批量更新命名查询的情况下,版本不会在 JPA 中更新

java - 将 JVM 嵌入到 C++ 应用程序中 : How to link it properly?

java - 保持顺序的非阻塞函数

android - 透明背景

Android 服务 getSharedPreferences 问题