android - 将 ParseObject 与 Parse.com 同步的最有效方法

标签 android parse-platform synchronization

我目前正在使用 Parse.com 来满足我的 Android 应用程序中的云处理需求,并且我正在尝试找出通过 Parse 服务器实时更新 ParseObjects 的最佳方式。我不想每次都想用实时数据更新本地数据(看起来效率很低),因为 Parse 似乎建议使用缓存查询,所以我不必每次都获取 ParseObjects 的整个查询。

我已经有了从 Parse 服务器获取推送通知所需的 BroadcastReceiver 和服务,但由于它们总是弹出一条消息,我也不想走这条路。我已经有一个同步适配器来解决本地和服务器数据之间的任何冲突,所以我只需要一种方法来告诉我的应用程序已经对特定的 ParseObject 进行了更新,这样它就可以只获取该对象的更新(并告诉我的ContentResolver 已更新)。

编辑: 下面是我尝试使用 Parse 在其文档中建议的代码。即使 JSONObject 中的“title”和“alert”标签没有值或为空值,此代码仍会向通知栏发送一个 Notification 对象。

//custom notification data
JSONObject pushObj = new JSONObject();
try {
    pushObj.put("notifVal", "TestValue");
}
catch (JSONException e1) {
    e1.printStackTrace();
    Log.i(TAG, "Error creating Push Notification JSONObject");
    return;
}
//Parse notification object
ParsePush pPush = new ParsePush();
pPush.setData(pushObj);
ParseQuery<ParseInstallation> query = ParseInstallation.getCurrentInstallation().getQuery();
pPush.setQuery(query);
pPush.sendInBackground(new SendCallback() {
    @Override
    public void done(ParseException e) {
        if(e == null)
            Log.i(TAG,"Push Notification Sent");
        else
            Log.i(TAG,"Push Notification Error");
    }
});

编辑 2: 很简单,我所缺少的只是 JSONObject 中的一个 Action 标签……

pushObj.put("action", "com.parse.example.UPDATE");

最佳答案

在您的共享首选项中保留最后一次检查日期,这样当您收到推送时,您所要做的就是查询对象的创建日期和更新日期,以查看是否大于您的最后一次检查日期。这样做只会为您提供自上次检查以来的新项目或更新项目

关于android - 将 ParseObject 与 Parse.com 同步的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25819398/

相关文章:

android - 如何在 Android 中的 ipod/ipad 等按钮上发光

android - 如何仅指定一次 LinearLayout 元素之间的间距?

android - 垂直音量 slider

javascript - Twitter API 1.1 无法对您进行身份验证 2

java - Java Synchronized(Object obj) 真正阻止了什么?

synchronization - 如何双向同步 zimbra 日历与 google 日历

android - AppWidgetProvider 中的 updateAppWidget 不会导致更新

android - 在解析中,发送的推送始终为 0

android - 电子邮件地址已被占用

php - MySQL数据库同步