当我在同一个方法中调用两次Class.getInstance时会发生什么?
例如:
private void widgetListeners() {
notifyNews.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (notifyNews.isChecked()) {
FirebaseMessaging.getInstance().subscribeToTopic(getString(R.string.news_subscriber));
} else {
FirebaseMessaging.getInstance().unsubscribeFromTopic(getString(R.string.news_subscriber));
}
return true;
}
});
notifyVersion.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (notifyVersion.isChecked()) {
FirebaseMessaging.getInstance().unsubscribeFromTopic("Version");
} else {
FirebaseMessaging.getInstance().unsubscribeFromTopic(Version"));
}
return true;
}
});
}
如果我在FirebaseMessaging.getInstance()
方法主体的顶部调用widgetListeners()
一次并将其存储在变量中,或者我只是在每个onPreferenceChange
中调用,或者我坚持我和我已经在上面做过了吗?
注意:我在widgetListeners()
扩展onCreateView
类的片段中调用PreferenceFragment
。
答案 0 :(得分:1)
getInstance()
通常是singleton pattern的工件。从高级别来看,这意味着您只能访问此类的一个实例,该实例是在您第一次访问它时创建的。
你已经完成的工作应该运作良好。该实例已经为您存储,因此在您的情况下,实际上无需将其存储在另一个引用中。