シングルトンをBroadcastReceiverに注入するのは良い習慣ですか?
より具体的には、次のようなシングルトンがあると仮定します。
@Singleton
public class UnitProvider {
private boolean mIsUsingCelsius = false;
protected SharedPreferences mSharedPrefs;
@Inject
public UnitProvider(SharedPreferences sharedPrefs) {
mSharedPrefs = sharedPrefs;
mIsUsingCelsius = isUsingCelsiusPref(Locale.getDefault());
}
public void refreshCelsius() {
if (!mSharedPrefs.contains(SharedPreferencesConstants.SP_KEY_USE_CELSIUS)) {
mIsUsingCelsius = isUsingCelsiusBasedOnLocale(Locale.getDefault());
}
}
}
そして、放送受信機があります:
public class DummyReceiver extends BroadcastReceiver {
@Inject protected UnitProvider mUnitProvider;
@Override
public void onReceive(Context context, Intent intent) {
DependencyInjectionService.inject(this);
mUnitProvider.refreshCelsius();
}
}
実際には機能しますが、パフォーマンスと、その状況が引き起こす可能性のあるメモリ リークについてはわかりません。インジェクションが引き起こす可能性のあるパフォーマンスとラグについて何か考えはありますか?