为了账号安全,请及时绑定邮箱和手机立即绑定

android在设备上保存非常小的数据的最佳方式

android在设备上保存非常小的数据的最佳方式

芜湖不芜 2021-09-03 13:23:37
在我的应用程序启动活动中,每次启动应用程序时我都需要检查三件事应用版本是用户登录是否创建了用户帐户我使用Firebase作为数据库,所以每次使用启动应用程序时,我都会在Datachange上检查数据库,然后根据返回结果和案例区域将用户发送到活动,如下所示://check if newer version is available (Step 1)if (appVersionMatch) {    CheckLogin();} else {    //Take user to appstore for app update}// (Step 2)public void CheckLogin() {    if (userLogin) {        CheckUserExist()    } else {        //Show user Login activity    }}// (Step 3)public void CheckUserExist() {    if (user.exist()) {        //Go To main Activity    } else {        //Go To Register activity    }}这个流程工作正常,但检查所有这三件事总是需要一些时间。我尝试使用以下方法更快但没有按预期工作: SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", MODE_PRIVATE);                    editor = pref.edit();                    boolean isLoogenIn = pref.getBoolean("userLoginCheck", false);
查看完整描述

2 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

这是我使用SharedPreferences.


首先创建一个单独的类(我用它来保存其他信息,如 url、常量等)在其中创建一个SharedPreferences.


public class project_constants {

private static String PREF_NAME = "project_pref";


private static SharedPreferences getPrefs(Context context) {

    return context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);

}


public static boolean getUserLogin(Context context) {

    return getPrefs(context).getBoolean("login", false);

}


public static void setUserLogin(Context context, boolean input) {

    SharedPreferences.Editor editor = getPrefs(context).edit();

    editor.putBoolean("login", input);

    editor.apply();

}

现在,当用户登录时,您应该使用project_constants.setuserLogin(getApplicationContext,True);.


现在,当您要检查用户是否已登录时,可以使用project_constants.getuserLogin(getApplicationContext);,如果是,则用户已登录,否则为否。


查看完整回答
反对 回复 2021-09-03
?
不负相思意

TA贡献1777条经验 获得超10个赞

第一次,当数据从 firebase 准备好时,您应该将数据保存在 SharedPreference 中:


SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", MODE_PRIVATE);

editor = pref.edit();

editor.putBoolean("userLoginCheck", false);

editor.commit();

然后您可以通过以下方式获得下次的偏好值:


 boolean isLoogenIn = pref.getBoolean("userLoginCheck", true);


查看完整回答
反对 回复 2021-09-03
  • 2 回答
  • 0 关注
  • 153 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信