Android中应用程序单例的使用 [英] Application singleton use in Android

查看:121
本文介绍了Android中应用程序单例的使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个facebook初始化sdk调用,在启动应用程序时需要它来初始化:

I have a facebook initialize sdk call and I need it to initialize the moment application is launched:

我想用我的Application类来做到这一点.例如:

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());
}
}

我的主要活动是使用Facebook登录按钮:

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) {

        }
    });
}
}

如何将我的应用程序称为单例?如何使它的onCreate()工作?

How do I call my Application singleton? How do I make its onCreate() work?

推荐答案

要使您的App类singleton遵循 Singleton设计模式

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();

如果这是您要的..

这篇关于Android中应用程序单例的使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆