我的应用程序是一个社交应用程序,正常情况下,您需要注册,登录并获得一个帐户,然后,您可以对您的帐户执行某些操作,就像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()方法 我不知道正确与否,您能告诉我在应用程序中存储帐户的正确方法吗?很多谢谢!
答案 0 :(得分:0)
请考虑使用AccountManager。
答案 1 :(得分:0)
我想我遇到了类似的问题,我的方法是使用单实例模式。当我使用set方法时,我设置我的值并同时将值放在SharedPreferences中。当我使用get方法时,我从SharedPreference获得了我的价值。这将确保当我运行我的应用程序时,该值永远不会为null。这是我的单实例类中的示例代码:
position: absolute
Utils.saveSharedPreferences和Utils.stringToInt(Utils.readSharedPreferences(context,“level”))是我的用户定义方法,用于将值保存到SharedPreferences并从SharedPreferences获取值。您无需关心细节。