2013-01-15 14 views
7

私はアンドロイドのアプリケーションでAnalyticsを導入しています、と私は、アップロードの操作を行った後対前super.onPause()を呼び出すの効果は何super.onPause()super.onPause()を呼び出すタイミングは?

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

super.onPause(); 

を呼び出すときにアドバイスをご希望ですか?

一般に、super.onPause()に電話する必要があるのはいつですか?

+0

ようこそ。だから、ACを選択することを忘れないでくださいorchrect answer :) – m0skit0

+0

Related:https://stackoverflow.com/q/16925579/56285 and https://stackoverflow.com/q/9625920/56285 – Jonik

答えて

4

super.onPause()は、ご自身のActivity.onPause()オーバーライドでのみお電話ください。

public class YourActivity extends Activity { 

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

} 

必要がない場合は、これを無効にする必要はありません。あなたがそれを上書きしようとするなら、ここで遅いプロセスを作らないでください。そうしないと、ANRが得られるかもしれません。

+0

したがって、super.onPause()を最初に呼び出すことをお勧めします。 –

+0

本当に関係ありません。 – m0skit0

+0

私はsuper.onPause()の前にそれらを置くことについてちょっと心配していましたが、analytics sdkガイドラインはそれが前に必要であると言いました。 –

13

選択答えは(私はこれが古い質問です知っているが、新しい読者のために、ここで正しい方法である、正しくない: ... Super.onPauseまたはSuper.OnStart後にコードを追加し、ここにありますあなたの質問のためのAndroidの参照(直接リンクはコメントである):活動から

引用: これらのライフサイクルメソッドの実装では、常にすべての作業を行う前に、スーパークラスの実装を呼び出す必要があり

+2

次はdocsへのリンクです:http://developer.android.com/guide/components/activities.html – bkurzius

関連する問題