在显示第一个活动之前访问SharedPreferences?

时间:2012-03-01 13:02:21

标签: android

在我的应用程序中,我想在显示第一个Activity之前访问SharedPreferences(这应该用于确定用户是否“登录”,然后显示登录屏幕或主屏幕)。这可以实现吗?或者我是否需要制作一个短暂的闪屏来掩盖杂乱?

3 个答案:

答案 0 :(得分:0)

我会建议这样的事情: 制作SplashScreen活动并在用户登录后测试,然后决定显示哪个活动。如果你只是检查SharedPreferences你也可以只显示一个黑色的View,它会显示这么短的时间,用户不会注意到。
您也可以在setContentView之前的第一个活动'onCreate方法中执行此操作,然后决定要显示哪个视图。

答案 1 :(得分:0)

只需在SharedPreferences登录活动方法内访问onCreate()。检查用户是否已登录。如果是,请转到主要活动。如果没有,那么我们已经在登录页面。在这种情况下,用户登录时,请在SharedPreferences中将“ loggenIn”设置为True

SharedPreferences sp =  referenceManager.getDefaultSharedPreferences(getApplicationContext());

if(sp.getBoolean("loggedIn",false)){  //if the user is logged in
        Intent intent = new Intent(Login.this, Main.class); // go to the Main page
        Login.this.startActivity(intent);
        }

答案 2 :(得分:0)

  

在我的应用程序中,我想在显示第一个活动之前访问SharedPreferences(应该这样做以确定用户是否“登录”,然后显示登录屏幕或主屏幕)。能做到吗?

不是,不是真的,因为用户进入应用程序的方式是通过一些“主要”活动,所以用户必须先启动某事,然后才能做任何事情。

  

还是我必须做一个简短的启动画面来掩盖混乱?

您有3个选择:

  1. 根据您的建议启动屏幕:检测登录状态,打开登录或主要活动,完成操作。
  2. MainActivity:检查是否已登录,如果未登录,则打开LoginActivity并检查结果。如果用户登录继续,则退出,否则将失败。
  3. 登录活动:检查是否已登录,如果已登录,请打开Main并完成操作。

我个人会选择选项(3),因为无论如何,登录活动都将执行此“登录时重定向”逻辑,这意味着您无需使用启动逻辑检查即可显示启动画面或混乱的主画面。但是要随心所欲。

希望有帮助!