Sinch onShouldSendPushData需要几秒钟才能被解雇

时间:2015-07-04 16:46:38

标签: android parse-platform instant-messaging sinch

我已按照这些教程开发了即时通讯应用程序:

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/

一切都很好。在用户手机中,我尝试向另一个停止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被调用之前退出活动(例如写一条快速消息然后我点击后退按钮退出应用程序)推送通知永远不会被触发(显然因为没有及时调用onShouldSendPushData)。 有没有办法在关闭应用程序之前等待onShouldSendPushData被触发?是否有一个监听器或一些属性我可以检查以防止在onShouldSendPushData被调用之前关闭活动?

谢谢你, 安德烈

1 个答案:

答案 0 :(得分:2)

不是真的,你应该只是制作一个进度指示器,但如果你杀了应用程序,我们现在就没办法了。实现这一目标的一种方法是拥有一个服务&#34;您应用程序中始终运行的模式,因此不是处理MessagingActivity中的所有内容。然后你可以继续在后台运行。