Sinch onShouldSendPushData запускает несколько секунд

Я разработал приложение для обмена мгновенными сообщениями, следуя этим руководствам:

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 (например, напишу быстрое сообщение, а затем я нажму кнопку «Назад», чтобы выйти из приложения) push-уведомление никогда не запускается (очевидно, потому что onShouldSendPushData не вызывается вовремя). Есть ли способ дождаться запуска onShouldSendPushData перед закрытием приложения? Есть ли прослушиватель или какое-то свойство, которое я могу проверить, чтобы предотвратить закрытие активности до вызова onShouldSendPushData?

Спасибо, Андреа.


person jiraya85    schedule 04.07.2015    source источник


Ответы (1)


Не совсем, вам, вероятно, следует просто сделать индикатор прогресса, но если вы убьете приложение, у нас не будет возможности сделать это сейчас. Один из способов реализовать это — иметь шаблон «Сервис» в вашем приложении, который всегда работает, поэтому вместо того, чтобы обрабатывать все в MessagingActivity. Затем вы можете продолжать работать в фоновом режиме.

person cjensen    schedule 06.07.2015