jestem znalezieniem się, że około 1/5 z moich testów zamrażania, a po pewnym szukając problem mam zmniejszyła go do linii:ParseInstaller.getCurrentInstallation() saveInBackground() jest zamrażanie mój wniosek
ParseInstallation.getCurrentInstallation(). SaveInBackground();
Używam Parse 1.5.1 i urządzenia Android 4.4.2. Moja klasa aplikacji wygląda następująco:
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");
}
}
Zachowanie na moim urządzeniu jest to, że po raz pierwszy zobaczyć pusty biały ekran przez około 5 sekund, a następnie ekran robi się czarny. Nie jestem pewien, jak długo ekran pozostaje czarny, jak zwykle jestem blisko. Pozwoliłem mu siedzieć przez około 10 minut bez żadnych zmian. Nie mogę nacisnąć przycisku Wstecz, a dotknięcie ekranu nic nie robi. Jestem zmuszony użyć mojego przycisku domowego, a następnie zmuszam aplikację do zamknięcia. Po ponownym otwarciu aplikacji zachowuje się i działa normalnie.
Dalsze badania doprowadziły mnie do znalezienia tego posta: https://www.parse.com/questions/android-saveinbackground-lock-the-main-thread
Ale nadal nie byłem w stanie znaleźć rozwiązanie. Jedna z sugestii w powyższym poście to po prostu przesunięcie lokalizacji tego kodu. Próbowałem tego do pewnego momentu po metodzie onCreate() mojej głównej działalności (nie mylić z metodą onCreate() aplikacji). Zachowanie zdawało się normalne, aż dotarłem do punktu, w którym wywołano kod getCurrentInstallation.saveInBackground(), w którym moja aplikacja zawiesiła się i nie odpowiedziała, dopóki nie wymusiłem jej zamknięcia.
Czy są jakieś rozwiązania tego problemu?
Wielu moich użytkowników aplikacji zgłosiło ten sam problem (biały ekran lub czarny ekran). Podejrzewałem, że parsuję, ale tak naprawdę nie potwierdziłem. Ale czytając to, myślę, że to może być prawda. Ale problem został rozwiązany podczas ponownej instalacji lub przymusu zamknięcia (Nie jest to dobre rozwiązanie).Wierd. –
Niestety, prośba użytkownika o przymus zamknięcia jest nie do przyjęcia. Ten błąd występuje w kilku różnych przypadkach. Świeża instalacja z Eclipse, świeża instalacja z pliku .apk i aktualizacja z bieżącej wersji sklepu Play. Wszystkie trzy doprowadziły do tego samego problemu. Nie zdarza się to za każdym razem, ale często na tyle, by mieć zły wpływ. –
Co powiesz na zapisanie go we własnym wątku? –