什么是在android中存储帐户对象的正确方法?

时间:2015-07-01 08:08:44

标签: android security social account

我的应用程序是一个社交应用程序,正常情况下,您需要注册,登录并获得一个帐户,然后,您可以对您的帐户执行某些操作,就像Facebook或Instagram,它可以获取提要,朋友,发布事情和我的问题是,存储帐户信息的正确方法是什么?当应用程序启动时,如何存储对象?使用SharedPreferences?我使用单实例模式存储帐户。
这是我的代码。

public class DataHub {
private static DataHub instance = new DataHub();
private static final Map<String,Object> sData = new HashMap<String, Object>();

private DataHub(){

}

public static DataHub getInstance(){
    return instance;
}

public static void saveUser(User user){
    sData.put("user", user);
}

public static User getUser(){
    User user = (User) sData.get("user");
    if(user == null){
        MyApplication context = MyApplication.getApplication();
        if(context == null){
            return null;
        }
        user = UserDbHelper.getInstance(context).findFirstUser();
        if(user != null){
            saveUser(user);
        }
    }
    return user;
}

}

当我需要使用帐户对象时,我调用了getUser()方法 我不知道正确与否,您能告诉我在应用程序中存储帐户的正确方法吗?很多谢谢!

2 个答案:

答案 0 :(得分:0)

请考虑使用AccountManager

答案 1 :(得分:0)

我想我遇到了类似的问题,我的方法是使用单实例模式。当我使用set方法时,我设置我的值并同时将值放在SharedPreferences中。当我使用get方法时,我从SharedPreference获得了我的价值。这将确保当我运行我的应用程序时,该值永远不会为null。这是我的单实例类中的示例代码:

position: absolute

Utils.saveSharedPreferences和Utils.stringToInt(Utils.readSharedPreferences(context,“level”))是我的用户定义方法,用于将值保存到SharedPreferences并从SharedPreferences获取值。您无需关心细节。