2015-10-04 2 views
1

Я использую facebook sdk, чтобы отслеживать установки приложений и протоколировать события. У меня есть 4 действия в моем приложении. Согласно документации, я активирую и деактивирую в каждой деятельности.Могу ли я использовать ApplicationContext для регистрации событий вместо контекста Activity для событий приложения facebook?

public class MyActivity extends Activity { 

private FacebookSingleton fb = FacebookSingleton.getInstance(); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    //some event occurred 
    Bundle params = new Bundle(); 
    params.putString("SEARCH QUERY", query); 
    fb.trackEventForFb("PRODUCT SEARCH", params); 
} 

@Override 
    protected void onResume() { 
    super.onResume(); 
    AppEventsLogger.activateApp(this); 
} 

@Override 
    protected void onPause() { 
    super.onPause(); 
    AppEventsLogger.deactivateApp(this); 
} 



public class FacebookSingleton { 

private static MyApplication appInstance; 
private static FacebookSingleton instance; 

private FacebookSingleton() { 
}; 
public static void setupFb(MyApplication myAppInstance) { 
    if (instance == null) { 
     instance = new FacebookSingleton(); 
     appInstance = myAppInstance; 
    } 
} 

public void trackFacebookEvent(String event,Bundle parameters) { 
    AppEventsLogger logger = AppEventsLogger.newLogger(appInstance); 
    logger.logEvent(event, parameters); 
} 

И это мое приложение

public class MyApplication extends Application { 

@Override 
public void onCreate() { 
    super.onCreate(); 

    FacebookSdk.sdkInitialize(this); 
    FacebookSingleton.setupFb(this); 

} 
} 

Когда я вхожу событие, я могу создать синглтон и передать этот контекст вместо того, чтобы использовать контекст деятельности для регистрации событий как код aboce? Или мне нужно передать контекст активности только в соответствии с документацией?

ответ

3

Он будет работать, но вы не можете получить полную информацию. Для определенных событий мы попытаемся получить такие вещи, как имя Activity из контекста. Он охраняется так, что если контекст не является активностью, он не подведет, но вы не сможете получить полную информацию, переданную вместе.

Смежные вопросы