在我开始实施之前,它会起作用吗?使用 Shared Pref 作为 Parse-Server 的备份
Before I go implement this, would it work? Using Shared Pref as a backup to Parse-Server
我正在尝试加快此应用程序的加载速度,以及当我将数据从一个 activity 传递到另一个时,我很确定如果用户单击主页按钮,它会在一段时间后消失。
例如,我正在根据之前 activity 的信息更改新 activity 的标题。 getStringExtra 会超时吗?
我也在考虑将东西传递到共享首选项中。
例如,一旦我单击列表视图中的一个项目,我就会将大约 10 个不同的字符串传递到下一个 activity。如果我在进入 activity 之前将所有内容都放入共享 pref 中,然后一旦进入 activity 调用共享 pref 信息而不是 intent extra。
如果用户返回,我可以转储共享首选项,或者如果用户在列表视图中单击不同的object,我可以将其右移。
在我编码之前,这行得通吗?
Intent
中的额外内容不 "time out"。 Android 将此数据永久保存在框架中。即使您的应用程序在后台被杀死,当用户 returns 访问该应用程序时,Android 将使用原始 Intent
重新创建 Activity
,包括 "extras" .
可能不想使用共享首选项来存储大量数据,尽管它在某些情况下可能会起作用。
查看解析本地数据存储。您可以 "pin" 从本地服务器获取的数据,然后在任何需要的地方检索它。
例如,当您获取列表数据时,您可以将列表固定在本地。当你点击一个列表项时,你可以将该对象的 id 传递给详细信息屏幕(在 bundle args 中),然后通过 id 查询以显示它。
这是文档中的示例:
// Pin ParseQuery results
List<ParseObject> objects = query.find(); // Online ParseQuery results
ParseObject.pinAllInBackground(objects);
// Query the Local Datastore
ParseQuery<ParseObject> query = ParseQuery.get("Feed")
.fromLocalDatastore()
.whereEquals("starred", true)
.findInBackground(new FindCallback() {
public void done(List<ParseObject> objects, ParseException e) {
// Update UI
}
});
ParseObject feed = ParseQuery.get(objectId); // Online ParseQuery result
feed.fetch();
feed.put("starred", true);
// No network connectivity
feed.saveEventually();
ParseQuery<ParseObject> query = ParseQuery.get("Feed")
.fromLocalDatastore()
.whereEquals("starred", true)
.findInBackground(new FindCallback() {
public void done(List<ParseObject> objects, ParseException e) {
// "feed" ParseObject will be returned in the list of results
}
});
我正在尝试加快此应用程序的加载速度,以及当我将数据从一个 activity 传递到另一个时,我很确定如果用户单击主页按钮,它会在一段时间后消失。
例如,我正在根据之前 activity 的信息更改新 activity 的标题。 getStringExtra 会超时吗?
我也在考虑将东西传递到共享首选项中。 例如,一旦我单击列表视图中的一个项目,我就会将大约 10 个不同的字符串传递到下一个 activity。如果我在进入 activity 之前将所有内容都放入共享 pref 中,然后一旦进入 activity 调用共享 pref 信息而不是 intent extra。
如果用户返回,我可以转储共享首选项,或者如果用户在列表视图中单击不同的object,我可以将其右移。
在我编码之前,这行得通吗?
Intent
中的额外内容不 "time out"。 Android 将此数据永久保存在框架中。即使您的应用程序在后台被杀死,当用户 returns 访问该应用程序时,Android 将使用原始 Intent
重新创建 Activity
,包括 "extras" .
可能不想使用共享首选项来存储大量数据,尽管它在某些情况下可能会起作用。
查看解析本地数据存储。您可以 "pin" 从本地服务器获取的数据,然后在任何需要的地方检索它。
例如,当您获取列表数据时,您可以将列表固定在本地。当你点击一个列表项时,你可以将该对象的 id 传递给详细信息屏幕(在 bundle args 中),然后通过 id 查询以显示它。
这是文档中的示例:
// Pin ParseQuery results
List<ParseObject> objects = query.find(); // Online ParseQuery results
ParseObject.pinAllInBackground(objects);
// Query the Local Datastore
ParseQuery<ParseObject> query = ParseQuery.get("Feed")
.fromLocalDatastore()
.whereEquals("starred", true)
.findInBackground(new FindCallback() {
public void done(List<ParseObject> objects, ParseException e) {
// Update UI
}
});
ParseObject feed = ParseQuery.get(objectId); // Online ParseQuery result
feed.fetch();
feed.put("starred", true);
// No network connectivity
feed.saveEventually();
ParseQuery<ParseObject> query = ParseQuery.get("Feed")
.fromLocalDatastore()
.whereEquals("starred", true)
.findInBackground(new FindCallback() {
public void done(List<ParseObject> objects, ParseException e) {
// "feed" ParseObject will be returned in the list of results
}
});