如何在 Parse.com 中使用本地数据存储
How to use Local Datastore in Parse.com
我在 android 中有一个小项目,数据库在 Parse 中。所以现在我想将我的数据从 Parse 更改为本地数据存储,我在 Parse 中启用了本地数据存储,但我不知道如何更改代码。
这是我从 Parse 代码下载的数据:
try {
ParseQuery<ParseObject> query = new ParseQuery<>("BUS_STOP");
query.orderByAscending("stop_id");
query.setLimit(2000);
listA = query.find();
for (ParseObject mBusStop : listA) {
BusStop newBusStop = new BusStop();
newBusStop.setName((String) mBusStop.get("name"));
newBusStop.setStreet((String) mBusStop.get("street"));
newBusStop.setStyle((String) mBusStop.get("Type"));
newBusStop.setNext_id((int) mBusStop.get("next_id"));
newBusStop.setBus_id((int) mBusStop.get("bus_id"));
newBusStop.setStop_id((int) mBusStop.get("stop_id"));
double x, y;
x = (double) mBusStop.get("coor_x");
y = (double) mBusStop.get("coor_y");
LatLng a = new LatLng(x, y);
newBusStop.setLatLngBus(a);
busStops.add(newBusStop);
}
} catch (com.parse.ParseException e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
我的公交站class:
@ParseClassName("BUS_STOP")
public class BusStop extends ParseObject{
String name;
String street;
String style;
LatLng latLngBus;
int bus_id;
int next_id;
int stop_id;
public int getStop_id() {
return stop_id;
}
public void setStop_id(int stop_id) {
this.stop_id = stop_id;
}
public int getNext_id() {
return next_id;
}
public void setNext_id(int next_id) {
this.next_id = next_id;
}
public int getBus_id() {
return bus_id;
}
public void setBus_id(int bus_id) {
this.bus_id = bus_id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
public String getStyle() {
return style;
}
public void setStyle(String style) {
this.style = style;
}
public LatLng getLatLngBus() {
return latLngBus;
}
public void setLatLngBus(LatLng latLngBus) {
this.latLngBus = latLngBus;
}
我的申请文件:
public class FindingBusStop extends android.app.Application {
@Override
public void onCreate() {
super.onCreate();
Parse.enableLocalDatastore(getApplicationContext());
ParseObject.registerSubclass(BusStop.class);
}
我该如何解决?
您可以通过此行 query.fromLocalDatastore();
从本地数据存储中获取您的查询来轻松完成此操作。
此外,我无法看到您在应用程序 class 中初始化 parse sdk 的位置,如下所示:...
Parse.enableLocalDatastore(getApplicationContext());
Parse.initialize(this, "YOUR_APP_ID", "YOUR_CLIENT_KEY");
祝你编码愉快。
首先你必须'pin'数据(将ParseObject与本地数据库相关联的术语)保存到本地数据库。
因此,例如,如果在按下按钮时保存数据,则应在 setOnClickListener()
中添加以下内容
ParseObject gameScore = new ParseObject("GameScore");
gameScore.put("score", 1337);
gameScore.put("playerName", "Sean Plott");
gameScore.put("cheatMode", false);
//使用此行将对象固定到本地数据库并将其保存在那里
gameScore.pinInBackground();
还有一个函数.pinAll() 或 pinAllInBackgroud()
然后在您上面的代码中的 try 部分中,您应该在调用 find() 之前添加以下内容。
query.fromLocalDataStore();
您可能还想使用 findinbackground() 或 getinbackground() 函数,它们将在后台线程中获取数据。
此处的文档也很有帮助 https://parse.com/docs/android/guide#local-datastore-querying。
我在 android 中有一个小项目,数据库在 Parse 中。所以现在我想将我的数据从 Parse 更改为本地数据存储,我在 Parse 中启用了本地数据存储,但我不知道如何更改代码。 这是我从 Parse 代码下载的数据:
try {
ParseQuery<ParseObject> query = new ParseQuery<>("BUS_STOP");
query.orderByAscending("stop_id");
query.setLimit(2000);
listA = query.find();
for (ParseObject mBusStop : listA) {
BusStop newBusStop = new BusStop();
newBusStop.setName((String) mBusStop.get("name"));
newBusStop.setStreet((String) mBusStop.get("street"));
newBusStop.setStyle((String) mBusStop.get("Type"));
newBusStop.setNext_id((int) mBusStop.get("next_id"));
newBusStop.setBus_id((int) mBusStop.get("bus_id"));
newBusStop.setStop_id((int) mBusStop.get("stop_id"));
double x, y;
x = (double) mBusStop.get("coor_x");
y = (double) mBusStop.get("coor_y");
LatLng a = new LatLng(x, y);
newBusStop.setLatLngBus(a);
busStops.add(newBusStop);
}
} catch (com.parse.ParseException e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
我的公交站class:
@ParseClassName("BUS_STOP")
public class BusStop extends ParseObject{
String name;
String street;
String style;
LatLng latLngBus;
int bus_id;
int next_id;
int stop_id;
public int getStop_id() {
return stop_id;
}
public void setStop_id(int stop_id) {
this.stop_id = stop_id;
}
public int getNext_id() {
return next_id;
}
public void setNext_id(int next_id) {
this.next_id = next_id;
}
public int getBus_id() {
return bus_id;
}
public void setBus_id(int bus_id) {
this.bus_id = bus_id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
public String getStyle() {
return style;
}
public void setStyle(String style) {
this.style = style;
}
public LatLng getLatLngBus() {
return latLngBus;
}
public void setLatLngBus(LatLng latLngBus) {
this.latLngBus = latLngBus;
}
我的申请文件:
public class FindingBusStop extends android.app.Application {
@Override
public void onCreate() {
super.onCreate();
Parse.enableLocalDatastore(getApplicationContext());
ParseObject.registerSubclass(BusStop.class);
}
我该如何解决?
您可以通过此行 query.fromLocalDatastore();
从本地数据存储中获取您的查询来轻松完成此操作。
此外,我无法看到您在应用程序 class 中初始化 parse sdk 的位置,如下所示:...
Parse.enableLocalDatastore(getApplicationContext());
Parse.initialize(this, "YOUR_APP_ID", "YOUR_CLIENT_KEY");
祝你编码愉快。
首先你必须'pin'数据(将ParseObject与本地数据库相关联的术语)保存到本地数据库。 因此,例如,如果在按下按钮时保存数据,则应在 setOnClickListener()
中添加以下内容ParseObject gameScore = new ParseObject("GameScore");
gameScore.put("score", 1337);
gameScore.put("playerName", "Sean Plott");
gameScore.put("cheatMode", false);
//使用此行将对象固定到本地数据库并将其保存在那里
gameScore.pinInBackground();
还有一个函数.pinAll() 或 pinAllInBackgroud()
然后在您上面的代码中的 try 部分中,您应该在调用 find() 之前添加以下内容。
query.fromLocalDataStore();
您可能还想使用 findinbackground() 或 getinbackground() 函数,它们将在后台线程中获取数据。
此处的文档也很有帮助 https://parse.com/docs/android/guide#local-datastore-querying。