2013-06-09 12 views
7

Spojrzałem na Facebooku SDK 3.0, aby spróbować dowiedzieć się, jak śledzić instalacje pochodzące z kampanii Facebooku i zobaczył to w dokumentacji:dlaczego com.facebook.Settings.publishInstallAsync w onResume?

Dla FB Android SDK 3.0, dodać następujące onResume() każdego działania w Twojej aplikacji: com.facebook.Settings.publishInstallAsync (kontekst, YOUR_APP_ID);

Mam 2 podstawowe pytania:

  1. Dlaczego tak się dzieje w każdej działalności zamiast aktywności wyrzutni?

  2. Dlaczego to się dzieje w metodzie onResume zamiast onStart? Android zaleca, aby nie robić takich rzeczy w urządzeniu onResume.

Edit - choć to asynchroniczny robi to w kółko wydaje się głupie i un konieczne

Odpowiedz

2

Odpowiedź na oba pytania jest to, że w tym połączenia w onResume() metody każdy Aktywność, z którą masz do czynienia w przypadku awarii sieci w momencie pierwszego uruchomienia aplikacji przez użytkownika. Innymi słowy, Twoja aplikacja będzie próbować opublikować instalację za każdym razem, gdy działanie zostanie pokazane na pierwszym planie, a nie tylko wtedy, gdy pierwsze działanie zostanie rozpoczęte.

Od Facebook Developers Mobile App Install Ads:

Pozwoli to aplikacja do ping powrotem zdarzenie instalacji do Facebooka, gdy użytkownik otwiera aplikację po raz pierwszy, i ponownie w przyszłości, jeżeli tam jest błąd sieci. Nasz kod klienta przestanie wysyłać instalacje po uzyskaniu kodu powodzenia z serwera, a nasz back-end będzie liczyć instalację tylko raz, jeśli otrzyma wiele trafień dla tego samego urządzenia

+1

Nie rozumiem dlaczego nie zrobić tego z 'onStart' lub nawet' onCreate', nie ma powodu, aby robić to w kółko za każdym razem, gdy Activity wznawia pracę – thepoosh

+0

Zgadzam się, jednak połączenie jest zasadniczo nie-op (przynajmniej sieci mądry), gdy tylko SDK otrzymał odpowiedź od serwera. – David

+0

Ma tylko trochę większą szansę na wykrycie i uniknięcie awarii sieci, próbując raz jeszcze, gdy aplikacja zostanie wznowiona. W przeciwnym razie trzeba będzie poczekać, aż użytkownik zamknie aplikację i zacznie ją ponownie próbować, co byłoby poważnym problemem, gdyby użytkownik po prostu użył przycisku Strona główna, zamiast faktycznie wyjść. Jednak, o ile wiem, jeśli absolutnie nie chcesz tego zrobić z dowolnej przyczyny, możesz to zrobić na Utwórz i miej nadzieję, że zadziała po raz pierwszy. Po prostu nie jest zalecane. – arlanthir

Powiązane problemy