0

我正在开发一个 android 应用程序,它在启动时从我的 API 获取一些数据,并且它必须在整个生命周期中保留这些数据。这些数据可以从应用程序中的任何组件访问,所以我总是通过在我的 Application 类上初始化一个单例来解决这个问题。但是,单例很难测试,所以我正在考虑另一种方法。数据不应该存储在共享首选项中,因为每次应用程序打开时都会获取它们,所以你会怎么做?单身人士是这里的最佳选择吗?

提前致谢

4

1 回答 1

0

它是什么样的数据?

如果它符合您的需求,并且您正在存储某种记录,则首选方法是使用SQLiteDatabase以便于查询和写入。

如果它只是某种首选项,我会自己使用SharedPreferences,但如果它不在表中,您可以简单地将数据写入一个文件,您可以使用Environment解析该路径。getExternalStorageDirectory () 假设有一个可用,如果没有,你可以回退到Context获取文件目录()

以以下方式为例..

BufferedWriter bw = new BufferedWriter(new FileWriter(new File(mContext.getFilesDir(), "prefs.dat")));
bw.write(data);
bw.close();

并以类似的方式读回

BufferedReader br = new BufferedReader(new FileReader(new File(mContext.getFilesDir(), "prefs.dat")));
data = br.readLine();
br.close();

在此过程中,您可以将数据序列化为比纯文本更好的格式,例如 JSON。

于 2016-08-19T10:15:15.100 回答