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