在App中的很多地方都需要使用到数据信息,比如登陆保存的账号信息,一次计算的结果等等,通常为了避免Activity之间传递数据的开销,会将这些数据通过持久化来存储。
有时候我们会把数据放在全局Appcation中,其实,这种做法是错误的。当App处于后台时,出现了内存的时候。这个Appcation很可能会被后台杀掉,当你再次恢复这个应用时,系统又会重新为这个应用创建新的Appcation。而这个Appcation里面是没有保存数据的,所以会导致空指针异常。
为了应用能够更加稳定,我们很有必要使用持久化存储来把数据保存在本地。
封装SP的代码
public class SpUtils {
  /**
   * 保存变量
   * 
   * @param context
   * @param key
   * @param obj
   */
  public static void save(Context context, String key, Object obj) {
      // sp
      SharedPreferences sp = context.getSharedPreferences("config", Context.MODE_PRIVATE);
      // 编辑器
      Editor editor = sp.edit();
      if (obj instanceof String) {
          editor.putString(key, (String) obj);
      } else if (obj instanceof Boolean) {
          editor.putBoolean(key, (Boolean) obj);
      }
      editor.commit();// 保存
  }
  public static SharedPreferences get(Context context) {
      // sp
      SharedPreferences sp = context.getSharedPreferences("config", Context.MODE_PRIVATE);
      return sp;
  }
}
          













网友评论