Sinch onShouldSendPushData 需要几秒钟才能被解雇
Sinch onShouldSendPushData takes few seconds to get fired
我已经按照这些教程开发了一个即时消息应用程序:
https://www.sinch.com/tutorials/android-messaging-tutorial-using-sinch-and-parse/
和
https://www.sinch.com/tutorials/send-push-notifications-android-messaging-app-using-gcm/
一切正常。来自用户 phone 我试图向另一个用户发送即时消息,其中 MessageService 已停止(在他的设备上)。用户收到通知。
这是我的方法的实现:
@Override
public void onShouldSendPushData(MessageClient client, Message message, List<PushPair> pushPairs) {
final WritableMessage writableMessage = new WritableMessage(message.getRecipientIds().get(0), message.getTextBody());
ParseQuery userQuery = ParseUser.getQuery();
userQuery.whereEqualTo("objectId", writableMessage.getRecipientIds().get(0));
ParseQuery pushQuery = ParseInstallation.getQuery();
pushQuery.whereMatchesQuery("idutente", userQuery);
// Send push notification to query
ParsePush push = new ParsePush();
push.setQuery(pushQuery); // Set our Installation query
push.setMessage("sent you a message");
push.sendInBackground(new SendCallback() {
@Override
public void done(ParseException e) {
if(e==null){
}else{
e.printStackTrace();
}
}
});
}
问题如下:
如果我在 MessagingActivity 中,我会写一条消息,然后在调用 onShouldSendPushData 之前退出 activity(例如,写一条快速消息,然后单击后退按钮退出应用程序)永远不会触发推送通知(显然是因为没有及时调用 onShouldSendPushData)。
有没有办法在关闭应用程序之前等待 onShouldSendPushData 被触发?是否有我可以检查的侦听器或某些 属性 以防止在调用 onShouldSendPushData 之前关闭 activity?
谢谢,
安德里亚
不一定,您可能应该只制作一个进度指示器,但如果您终止该应用程序,我们现在就没有办法了。实现它的一种方法是在您的应用程序中使用一个始终 运行ning 的 "Service" 模式,而不是处理 MessagingActivity 中的所有内容。然后你可以在后台继续运行。
我已经按照这些教程开发了一个即时消息应用程序:
https://www.sinch.com/tutorials/android-messaging-tutorial-using-sinch-and-parse/
和
https://www.sinch.com/tutorials/send-push-notifications-android-messaging-app-using-gcm/
一切正常。来自用户 phone 我试图向另一个用户发送即时消息,其中 MessageService 已停止(在他的设备上)。用户收到通知。 这是我的方法的实现:
@Override
public void onShouldSendPushData(MessageClient client, Message message, List<PushPair> pushPairs) {
final WritableMessage writableMessage = new WritableMessage(message.getRecipientIds().get(0), message.getTextBody());
ParseQuery userQuery = ParseUser.getQuery();
userQuery.whereEqualTo("objectId", writableMessage.getRecipientIds().get(0));
ParseQuery pushQuery = ParseInstallation.getQuery();
pushQuery.whereMatchesQuery("idutente", userQuery);
// Send push notification to query
ParsePush push = new ParsePush();
push.setQuery(pushQuery); // Set our Installation query
push.setMessage("sent you a message");
push.sendInBackground(new SendCallback() {
@Override
public void done(ParseException e) {
if(e==null){
}else{
e.printStackTrace();
}
}
});
}
问题如下:
如果我在 MessagingActivity 中,我会写一条消息,然后在调用 onShouldSendPushData 之前退出 activity(例如,写一条快速消息,然后单击后退按钮退出应用程序)永远不会触发推送通知(显然是因为没有及时调用 onShouldSendPushData)。 有没有办法在关闭应用程序之前等待 onShouldSendPushData 被触发?是否有我可以检查的侦听器或某些 属性 以防止在调用 onShouldSendPushData 之前关闭 activity?
谢谢, 安德里亚
不一定,您可能应该只制作一个进度指示器,但如果您终止该应用程序,我们现在就没有办法了。实现它的一种方法是在您的应用程序中使用一个始终 运行ning 的 "Service" 模式,而不是处理 MessagingActivity 中的所有内容。然后你可以在后台继续运行。