2013-01-15 4 views
7

Ich bin der Umsetzung Analytics in meinem Android-Anwendung, und ich möchte Rat auf, wenn super.onPause()Wann soll super.onPause() aufgerufen werden?

if (mAnalyticsSession != null) { 
    mAnalyticsSession.close(); 
    mAnalyticsSession.upload(); 
} 

super.onPause(); 

nennen Was ist der Effekt von super.onPause() Aufruf nach Aktionen Upload tun vs. vor?

Im Allgemeinen, wann sollte man super.onPause() anrufen?

+0

Willkommen. zu SO, vergiss nicht, ac zu wählen orrect Antwort :) – m0skit0

+0

Related: https://StackOverflow.com/Q/16925579/56285 und https://StackOverflow.com/Q/9625920/56285 – Jonik

Antwort

4

Sie rufen nur super.onPause() in Ihrem eigenen Activity.onPause() Override.

public class YourActivity extends Activity { 

    @Override 
    public void onPause() { 
     super.onPause(); 
     // Do your stuff, e.g. save your application state 
    } 

} 

Beachten Sie, dass Sie dies nicht überschreiben müssen, wenn Sie es nicht benötigen. Wenn Sie es überschreiben, dann machen Sie keine langsamen Prozesse hier oder Sie könnten einen ANR erhalten.

+0

Also empfehlen Sie zuerst aufrufen super.onPause() und dann andere Aktionen? –

+0

Ist nicht wirklich wichtig. – m0skit0

+0

ok. Ich war nur ein bisschen besorgt darüber, sie vor super.onPause() zu setzen, aber die analytischen SDK-Richtlinien sagten, dass es vorher sein musste. –

13

Die gewählte Antwort ist nicht richtig, (ich weiß, das ist eine alte Frage, aber für neue Leser hier ist der richtige Weg: Ihre Codes hinzufügen nach Super.onPause oder Super.OnStart, ... Und hier ist ein Android-Referenz für Ihre Frage (Link ist in Kommentaren):

Zitat von Aktivitäten: Ihre Umsetzung dieser Lebenszyklusmethoden immer die übergeordnete Klasse Implementierung aufrufen müssen, bevor Sie mit den Arbeiten

+2

Hier ist der Link zu den Dokumenten: http://developer.android.com/guide/components/activities.html – bkurzius