【发布时间】:2017-05-23 03:06:20
【问题描述】:
如果我们在从流中检索后更新活动,我们就可以更新
String feedId = "ef202000-3f6b-11e7-8080-800171e94936";
Feed feed = StreamUtils.getStreamClient().newFeed(Constants.FEED_SLUG, "feed_66_103");
NotificationActivityServiceImpl<MessageItem> userMessagesActivityService = feed.newNotificationActivityService(MessageItem.class);
FeedFilter filter = new FeedFilter.Builder().withIdGreaterThanEquals(feedId).withLimit(1).build();
StreamResponse<NotificationActivity<MessageItem>> userMessageItems = userMessagesActivityService.getActivities(filter, false, false);
if (userMessageItems != null && userMessageItems.getResults().size() != 0) {
for (NotificationActivity<MessageItem> messageItemNotificationActivity : userMessageItems.getResults()) {
for (MessageItem messageItem : messageItemNotificationActivity.getActivities()) {
messageItem.setMessage_status(MESSAGE_STATUS_READ);
userMessagesActivityService.updateActivities(Collections.singletonList(messageItem));
Log.d("Message json", new Gson().toJson(messageItem));
}
}
}
但是,如果我们通过构建活动来更新它,我们无法更新
Feed feed = StreamUtils.getStreamClient().newFeed(Constants.FEED_SLUG, "chat_66_103");
String messageJson = "{\"channel_id\":\"feed_66_103\",\"message\":{\"message_text\":\"Test message\"},\"message_status\":\"DELIVERED\",\"receivers\":[103],\"actor\":\"66\",\"foreignId\":\"66_103_1495511846405\",\"id\":\"ef202000-3f6b-11e7-8080-800171e94936\",\"object\":\"delivery_message\",\"time\":\"May 23, 2017 9:27:26 AM\",\"to\":[],\"verb\":\"delivery_message\"}";
MessageItem messageItem = new Gson().fromJson(messageJson, MessageItem.class);
messageItem.setMessage_status(MESSAGE_STATUS_READ);
NotificationActivityServiceImpl<MessageItem> userMessagesActivityService = feed.newNotificationActivityService(MessageItem.class);
userMessagesActivityService.updateActivities(Collections.singletonList(messageItem));
Log.d("Message json", new Gson().toJson(messageItem));
在 setMessage_status 方法中,我正在更改变量 object、verb、message_status 的值
这里甚至是打印相同对象的日志。我们不知道我们错过了什么。
我们也从 python 客户端尝试过。那里也有同样的问题。
【问题讨论】:
-
你不能更新时间或foreign_id字段
-
我做了一些小径来测试我能更新或不能更新的天气。并且在发布问题时忘记删除该行。虽然我没有更新时间,但它不起作用
-
@TommasoBarbugli 你能试试吗?
标签: android json getstream-io gson