android应用程序数据应存储在哪里以防止丢失?

时间:2018-08-26 16:12:18

标签: android json storage

我正在开发一个将用户输入存储在数据库中的应用程序,我想知道处理它的最佳方法。我希望在应用程序关闭以及应用程序更新时保留信息。共享首选项功能似乎不是一个好主意,因为数据更加复杂(例如具有多个级别的JSON文件)。仅将JSON数据作为.txt文件存储在内部存储中是否安全? (即不会丢失...我不担心安全性)。这是我要保存的JSON数据的示例:

{ "Altimeter": "3015", "Cloud-List": [ [ "FEW", "025" ], [ "SCT", "055" ], [ "SCT", "200" ], [ "BKN", "250" ] ], "Dewpoint": "21", "Flight-Rules": "VFR", "Meta": { "Cache-Timestamp": "Sun, 26 Aug 2018 16:07:47 GMT", "Timestamp": "Sun, 26 Aug 2018 16:07:52 GMT" }, "Other-List": [], "Raw-Report": "KJFK 261551Z 20009KT 10SM FEW025 SCT055 SCT200 BKN250 26/21 A3015 RMK AO2 SLP210 T02560206", "Remarks": "RMK AO2 SLP210 T02560206", "Remarks-Info": { "Dew-Decimal": "20.6", "Temp-Decimal": "25.6" }, "Runway-Vis-List": [], "Station": "KJFK", "Temperature": "26", "Time": "261551Z", "Units": { "Altimeter": "inHg", "Altitude": "ft", "Temperature": "C", "Visibility": "sm", "Wind-Speed": "kt" }, "Visibility": "10", "Wind-Direction": "200", "Wind-Gust": "", "Wind-Speed": "09", "Wind-Variable-Dir": [] }

3 个答案:

答案 0 :(得分:0)

保存在文本文件中是保存数据的好方法。当您注意文件目的地时,数据不会丢失。例如,它不应放置在任何临时文件夹中。

另一种方法是使用数据库存储数据。那是正常的做法。

您具有以下选择: 1. SharedPreferences 2.文字档 3.数据库

您可以通过快速Google搜索找到的所有3种方法的教程。

很棒的编码!

答案 1 :(得分:0)

最好将SharedPreferences中的数据另存为JsonString,并在检索数据时使用Gson库将json转换为其原始对象(序列化和反序列化),如下所示:

String json = new Gson().toJson(yourNeededObject);
SharedPreferences shp = PreferenceManager.getDefaultSharedPreferences(context);
shp.edit().putString(key, json).apply();

并反序列化:

String json = shp.getString(key);
YourObject obj = new Gson().fromJson(json, YourObject.class);

答案 2 :(得分:0)

由于您对避免丢失此应用程序数据的安全性感兴趣,因此请考虑远程位置,即设备附近的位置。如今,任何云存储都将为您提供这种安全性。