2013-03-01 48 views
1

您好我有一个应用程序,严格要求出现“登录”,即使应用程序被破坏。如果应用程序被破坏,那么以后重新加载(如果以前登录),登录屏幕应该直接跳过到用户以前查看的页面。 (我已经处理所有会话相关的变量)即使在应用程序被破坏的情况下保持'登录'

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

我试图存储偏好数据库手动(这可能是什么呢Shared Preferences呢?),但它仍然加载过程的登录活动,因为这是我第一次加载活动。因此,这个问题更多的是保持用户始终使用哪个活动的偏好,然后直接加载到此onResume()

我的问题:有没有人处理过这种情况?我应该如何处理预加载活动。我一直在想,当我在登录屏幕中加载我的偏好时,我会检查前面的活动首选项,并简单地加载(假设用户已登录)。

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

任何帮助,非常感谢

编辑:好吧刚刚发布此之后,我意识到我真正要做的就是添加一个检查中的onResume相应的会话变量是否设置。然后加载到活动中,实际上就像Akbari在下面所说的那样。我已将我的偏好设置类重新转换为使用标准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);   
    }  

回答

1

可以保存登录状态的喜好和的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(); 
    } 
} 

这里,它会检查登录状态并将用户重定向到下一个活动(如果已经登录)

+0

实际上,在我发布该问题后,我意识到它比我想象的要简单得多。我基本上按照你在这里所说的来实施。欢呼:) – wired00 2013-03-01 06:46:41

+0

奇妙的是,我刚刚改变了我的偏好类回到使用'SharePreferences'而不是手动数据库保存,它仍然工作完美。非常满意这一结果 – wired00 2013-03-01 07:00:03

相关问题