Android数据持久化技术

Android数据持久化技术

  1. 文件存储

    Context提供了getFileOutput(String fileName,int mode)

    mode:MODE_APPEND(文件存在时在后添加), MODE_PRIVATE(默认模式,文件存在时覆盖)

    使用输入输出流对文件进行读取

  2. SharedPreferences

    1. 获取SharedPreferences对象

    • getContext.getSharedPreferences(String filename,int mode)。mode目前只有MODE_PRIVATE(只能被当前应用才能进行读写)

    • getActivity.getSharedPreferences(String filename,int mode)。底层使用的是context中SharedPreferences。

    • PreferencesManager.getSharedPreferences(Context context)

    1. 使用

    • SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
      SharedPreferences.Editor editor = sharedPref.edit();
      editor.putInt(getString(R.string.saved_high_score_key), newHighScore);
      editor.apply();
    • SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
      int defaultValue = getResources().getInteger(R.integer.saved_high_score_default_key);
      int highScore = sharedPref.getInt(getString(R.string.saved_high_score_key), defaultValue);
    • 注意:保存时可以使用apply和commit提交,前者是异步,后者是同步所以使用commit避免在主线程中使用。

  3. SQLite

    1. 使用

      public class MyDBHelper extends SQLiteOpenHelper {
      ​
       public MyDBHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
           super(context, name, factory, version);
       }
      ​
       public MyDBHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version, @Nullable DatabaseErrorHandler errorHandler) {
           super(context, name, factory, version, errorHandler);
       }
      ​
       @RequiresApi(api = Build.VERSION_CODES.P)
       public MyDBHelper(@Nullable Context context, @Nullable String name, int version, @NonNull SQLiteDatabase.OpenParams openParams) {
           super(context, name, version, openParams);
       }
      ​
       @Override
       public void onCreate(SQLiteDatabase db) {
      ​
       }
      ​
       @Override
       public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
      ​
       }
      }
      //在创建数据时使用实例调用getWriteableDatebase()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值