2012-09-06 2 views
5

私のアンドロイドアプリケーションでフラマの解析を統合したい、それは本当に簡単に見えます。しかし、私は慌てるとそれがどのように動作するかに精通していない。すべての活動にすべてのアクティビティで曖昧な分析が必要ですか?

public void onStart() 
{ 
super.onStart(); 
FlurryAgent.onStartSession(sample, “APIXXXXXXXXXXXX”); 

} 

iは、コードを追加する必要がありますか?

私のアプリケーションでは多くのアクティビティが使用されていますが、実際にはどのアクティビティが使用されているのかを気にする必要はありません。インストール数、セッション数、セッション長のみです。しかし、突発的なコードが起動アクティビティにのみ追加された場合、セッションの長さは利用可能ですか?

私が知りたい情報のほとんどは既にプレイストアで利用可能ですが、私はこれを試して、さまざまなプラットフォームのアプリケーションの概要を知りたいと思います。ここで

答えて

16

素晴らしい答えです:https://stackoverflow.com/a/8062568/1635817

私は、あなたが「BaseActivity」を作成するために、あなたはすべての活動のクラスでこれらの行をコピー/ペーストする必要はありませんので、それを拡張するために、すべてのあなたの活動を伝えることをお勧めします。このような

何か:だから、長い onStartSession(コンテキスト、文字列と呼ばれているすべてのコンテキストがあるよう

からFlurry's documentation

:コメントを@conorに応じて

public class BaseActivity extends Activity 
{ 
    public void onStart() 
    { 
     super.onStart(); 
     FlurryAgent.onStartSession(this, "YOUR_KEY"); 
     // your code 
    } 

    public void onStop() 
    { 
     super.onStop(); 
     FlurryAgent.onEndSession(this); 
     // your code 
    } 
} 

)、onEndSession(Context)ではなく、 セッションが継続されます。また、新しいコンテキストが、onEndSessionを呼び出す最後のコンテキストの10秒(デフォルトセッション タイムアウトの長さ)以内に onStartSession(Context、String)を呼び出す場合、作成される新しいセッションの代わりに セッションが再開されます。 セッションの長さ、使用頻度、イベント、エラーは、同じセッションの一部として引き続き追跡される です。これにより、ユーザーが としてアプリケーション内の1つのアクティビティから別のアクティビティに移行する際に、 にはアクティビティごとに別々のセッションがトラッキングされず、多くのアクティビティにまたがる単一セッションの になります。

+0

正確にどのようにだこと私はそれを使用;) – Kostas

+0

素晴らしい! baseActivityを使用したことはありません。もっと多くのことに便利です。 – Jasper

+1

このコードは、実際の1回の使用セッションごとに複数のFlurryセッションを作成する効果がありませんか? – conor

4

florianmskiの回答には意味がありますが、FragmentActivity、TabActivity、ListActivityなどのさまざまな種類のアクティビティをアプリケーションで使用する必要がある場合はいくつかの問題があります。この場合、単一のBaseActivityからすべてのアクティビティを拡張することはできません。個人的に私は、たとえば、各アクティビティのONSTARTとonStop方法でonStartSessionとonEndSessionの呼び出しを置くが、前にいくつかのクラスにそれらをラップすることを好む:各活動インサイド

public class Analytics { 
    public static void startSession(Context context) { 
     FlurryAgent.onStartSession(context, Config.FLURRY_KEY); 
     // here could be some other analytics calls (google analytics, etc) 
    } 
    public static void stopSession(Context context) { 
     FlurryAgent.onEndSession(context); 
     // other analytics calls 
    } 
} 

を:

public void onStart() { 
    super.onStart(); 
    Analytics.startSession(this); 
} 

public void onStop() { 
    super.onStop() 
    Analytics.stopSession(this); 
} 
+1

これは間違いなく進んでいますが、ログなどのための大きな入り口になります。 –

+0

私はこの方法が好きですが、FlurryAgent.onEndSession(コンテキスト)でstopSession(コンテキストコンテキスト)メソッドのコードを変更しました。 –

関連する問題