gpt4 book ai didi

android - 在共享首选项中存储数据和在android中存储数据之间的区别

转载 作者:行者123 更新时间:2023-11-29 15:13:50 25 4
gpt4 key购买 nike

我正在 android 中创建一个应用程序,我想存储用户在谷歌地图上选择的地点的数据。我目前通过将它们全部添加到一个数组中来存储所有位置,然后通过 Gson 库将它们序列化,它工作正常并且编码非常简单和容易但是如果我使用数据库而不是数据库那么编码将更加复杂并且因为数据库的植入更复杂,所以只需将位置数组串起来以共享首选项。下面是我在共享首选项中存储和保存其对象的类,但如果想将它们存储在数据库中,那么我必须经历更复杂的过程,我必须创建插入、删除更新等查询。所以建议我我应该使用 db 还是 shred 偏好有利于保存位置列表。

 package com.example.googlemapstext;

import java.util.ArrayList;

import android.location.Address;

public class MyPlace {
private int id;
private String placeName;
private Address placeAddress;
private int ringerState;
private int brightnessState;
private int wifiState;
private int gpsState;
private int bluetoothState;
private int radiusValueIndex;
private ArrayList<Contact> contactArrayList;
private String message;
private double radiusValue;
private boolean notificationCheck;

public MyPlace(int id,String placeName, Address placeAddress, String radiusValue,
int ringerState, int brightnessState, int wifiState, int gpsState,
int bluetoothState, int radiusValueIndex, ArrayList<Contact> contactArrayList,
String message, boolean notificationCheck) {
this.id=id;
this.placeName = placeName;
this.placeAddress = placeAddress;
this.radiusValue = getTrimedRadiusValue(radiusValue);
this.ringerState = ringerState;
this.brightnessState = brightnessState;
this.wifiState = wifiState;
this.gpsState = gpsState;
this.bluetoothState = bluetoothState;
this.contactArrayList = contactArrayList;
this.message = message;
this.radiusValueIndex = radiusValueIndex;
this.notificationCheck = notificationCheck;
}

private double getTrimedRadiusValue(String radiusValue)
{
radiusValue=radiusValue.replace("Radius ", "");
radiusValue=radiusValue.replace(" Meters", "");
return Double.parseDouble(radiusValue);
}

public boolean getNotificationCheck() {
return notificationCheck;
}

public void setNotificationCheck(boolean notificationCheck) {
this.notificationCheck = notificationCheck;
}

public int getRadiusValueIndex() {
return radiusValueIndex;
}

public void setRadiusValueIndex(int radiusValueIndex) {
this.radiusValueIndex = radiusValueIndex;
}

public int getRingerState() {
return ringerState;
}

public void setRingerState(int ringerState) {
this.ringerState = ringerState;
}

public int getBrightnessState() {
return brightnessState;
}

public void setBrightnessState(int brightnessState) {
this.brightnessState = brightnessState;
}

public int getWifiState() {
return wifiState;
}

public void setWifiState(int wifiState) {
this.wifiState = wifiState;
}

public int getGpsState() {
return gpsState;
}

public void setGpsState(int gpsState) {
this.gpsState = gpsState;
}

public int getBluetoothState() {
return bluetoothState;
}

public void setBluetoothState(int bluetoothState) {
this.bluetoothState = bluetoothState;
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

public double getRadiusValue() {
return radiusValue;
}

public void setRadiusValue(String radiusValue) {
this.radiusValue = getTrimedRadiusValue(radiusValue);
}

public String getPlaceName() {
return placeName;
}

public void setPlaceName(String placeName) {
this.placeName = placeName;
}

public Address getPlaceAddress() {
return placeAddress;
}

public void setPlaceAddress(Address placeAddress) {
this.placeAddress = placeAddress;
}

public ArrayList<Contact> getContactArrayList() {
return contactArrayList;
}

public void setContactArrayList(ArrayList<Contact> contactArrayList) {
this.contactArrayList = contactArrayList;
}

public int getId() {
return id`enter code here`;
}

public void setId(int id) {
this.id = id;
}

}

最佳答案

SharedPreferences 和 DataBase 之间的主要区别就像您提到的那样:

SharedPreferences 在键值对的基础上工作。您只需提供 key 并取回您存储的值。太好了。

DataBase 创建一个 SQLite Tables,您需要使用查询将它们拉出来。

我认为,如果您熟悉自己构建的 JSON 机制,那么只需在 SharedPreferences 中存储一个字符串即可。

但是当数据变得越来越复杂,并且您想快速访问其中的任何部分时,我认为 DB 会比一直解析和搜索 JSON 字符串更容易。是的,它可能会让您编写更多代码来处理数据库查询。

关于android - 在共享首选项中存储数据和在android中存储数据之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26755649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com