Подтвердить что ты не робот

ParseInstaller.getCurrentInstallation(). SaveInBackground() замораживает мое приложение

Я нахожу, что около 1/5 моих тестов замерзают, и после некоторого поиска проблемы я сузил ее до строки:

ParseInstallation.getCurrentInstallation() saveInBackground();.

Я использую Parse 1.5.1 и Android 4.4.2. Мой класс приложения выглядит следующим образом:

public class InitApplication extends Application {

 @Override
    public void onCreate() {
        super.onCreate();
        Parse.initialize(this, "my_App_ID", "my_Client_Key");
        PushService.setDefaultPushCallback(this, MainActivity.class);
        System.out.println("execution DOES reach here");
        ParseInstallation.getCurrentInstallation().saveInBackground();
    System.out.println("execution DOES NOT reach here");
    }
}

Поведение на моем устройстве заключается в том, что я сначала увижу пустой белый экран в течение примерно 5 секунд, а затем экран станет черным. Я не уверен, как долго экран остается черным, как я обычно заставляю близко. Я позволил ему сидеть около 10 минут один раз без изменений. Я не могу нажать кнопку "Назад", и любое касание на экране ничего не делает. Я вынужден использовать мою домашнюю кнопку, а затем принудительно закрыть приложение. При повторном открытии приложения он ведет себя и функционирует нормально.

Дальнейшие исследования заставили меня найти этот пост: https://www.parse.com/info/android-saveinbackground-lock-the-main-thread

Но все же я не смог найти решение. Одним из предложений в вышеприведенном сообщении является просто перемещение местоположения этого кода. Я пробовал это до некоторого момента после моего основного метода onCreate() (не путать с приложением onCreate()). Поведение оказалось нормальным до тех пор, пока я не дошел до того момента, когда вызывается код getCurrentInstallation.saveInBackground(), где мое приложение застыло и не смогло ответить, пока я не закрою его.

Есть ли какие-либо решения этой проблемы?

4b9b3361

Ответ 1

Я столкнулся с такой же проблемой, используя Parse SDK 1.5.1.

И я только что скачал последнюю версию SDK 1.6.0 и решить проблему.

Ссылка, чтобы загрузить последнюю версию SDK.

Ответ 2

Вы можете отслеживать сообщение об ошибке здесь: Сохранение настроек поиска, вызывающее приостановку приложения

Я уже предоставил (конфиденциально) трассировки дампа потока из своего приложения. Однако во время написания этого сообщения нет никакой полезной обратной связи с парнем Парса.

Мое скромное мнение после изучения следов - это тупик, вызывающий эту проблему после некоторых проблем с взаимодействием с сервером. Но это просто догадывается.

Обновлена ​​ссылка

Ответ 3

У меня есть такая же проблема и многое другое.

Пустой или черный экран, однако, случается не со всеми моими тестовыми телефонами. Это происходит только с одним из них (Android 2.3).

SaveEventually также не работает на проблемном телефоне выше (все остальные телефоны, которые у меня работают, работают нормально). Он не отправляет данные успешно на сервер. Поэтому я подозреваю, что проблема конфигурации телефона для сохранения данных на самом телефоне, прежде чем переходить на сервер, когда сеть снова включена, может быть проблемой.