2012-09-06 40 views
5

我想在我的android應用程序中集成flurry分析,它看起來非常簡單。但我不熟悉亂舞以及它是如何工作的。每個Activity中的Flurry分析?

我應該添加代碼:

public void onStart() 
{ 
super.onStart(); 
FlurryAgent.onStartSession(sample, 「APIXXXXXXXXXXXX」); 

} 

在每一個活動?

我的應用程序使用了很多活動,我並不真正關心跟蹤哪些活動被使用,只有安裝次數,會話和會話長度。但是,如果僅在啓動活動中添加亂碼,會話長度是否可用?

我知道大部分我想要的信息都可以在Play商店中找到,但我想嘗試一下,以便在不同平臺上對應用程序進行概述。

回答

16

這裏是一個偉大的回答:https://stackoverflow.com/a/8062568/1635817

我建議你創建一個「BaseActivity」,並告訴所有的活動來擴展它,這樣你就不必在每一個活動類複製/粘貼這些行。

事情是這樣的:

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 
    } 
} 

針對@conor評論:

Flurry's documentation

只要有已調用 onStartSession(背景下,字符串的任何上下文)而不是onEndSession(上下文), 會話將繼續。另外,如果新Context在onEndSession的最後一個Context的10秒(默認會話 超時長度)內調用onStartSession(Context,String),則會恢復會話,而不是創建新會話。 作爲同一會話的一部分,會話長度,使用頻率,事件和錯誤將繼續被追蹤爲 。這可確保當用戶 在應用程序中從一個活動轉換到另一個活動時,他們將不會爲每個活動跟蹤單獨的會話,但會有跨越許多活動的單個會話。

+0

這正是如何我用它;) – Kostas

+0

太棒了!從來沒有使用過一個baseActivity,爲更多的東西進來真的很方便! – Jasper

+1

此代碼是否不會爲每個實際的單次使用會話創建多個Flurry會話? – conor

4

來自florianmski的回答有道理,但是當您必須在應用程序中使用不同類型的活動(如FragmentActivity,TabActivity,ListActivity等)時會遇到一些問題。在這種情況下,您無法從單個BaseActivity擴展所有活動。就個人而言,我寧願把onStartSession和onEndSession的通話中每個活動的在onStart和的onStop方法,但它們包裹之前到一些類,例如:

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(context)更改了stopSession(Context context)方法的代碼。 –

相關問題