0
将Singleton注入BroadcastReceiver是一种很好的做法吗?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();
}
}
其实它的工作原理,但我不知道有关性能和可能的内存泄漏该情况可能导致的。有没有关于注射可能导致的性能和可能的滞后的想法?