I have a facebook initialize sdk call and I need it to initialize the moment application is launched:
I want to use my Application class to do that. for example:
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
FacebookSdk.sdkInitialize(getApplicationContext());
}
}
I have the main activity with the facebook login button:
public class MainActivity extends AppCompatActivity {
@BindView(R.id.login_button)
LoginButton loginButton;
private CallbackManager callbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
callbackManager = CallbackManager.Factory.create();
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
}
});
}
}
How do I call my Application singleton? How do I make its onCreate() work?
To make your App class singleton
follow the Singleton design pattern:
public class App
{
// Create the instance
private static App instance;
public static App getInstance()
{
if (instance== null) {
synchronized(App.class) {
if (instance == null)
instance = new App();
}
}
// Return the instance
return instance;
}
private App()
{
// Constructor hidden because this is a singleton
}
public void initFBSdk()
{
FacebookSdk.sdkInitialize(getApplicationContext());
}
}
Then to use it in any other class:
App.getInstance().initFBSdk();
If this is what you are asking for..