【问题标题】:Passing Application as parameter将应用程序作为参数传递
【发布时间】:2020-01-19 11:38:30
【问题描述】:

我正在使用 Room 来实现数据库,使用数据库的代码位于 Repository 中,要获取数据库 Repository 的实例需要 Application 作为类属性,我想在扩展 IntentService 的类和类中获取 Repository 的实例扩展了 Worker 类,现在,他们不需要 Application 作为属性,但是为了能够在其中使用 Repostiory 我必须添加它,这是一种好的编程习惯吗?也许其他一些解决方案?

public class SunshineSyncIntentService extends IntentService {

    private Application mApplication;

    public SunshineSyncIntentService(@NotNull Application application) {
        super("SunshineSyncIntentService");
        mApplication = application;
    }

    @Override
    protected void onHandleIntent(Intent intent) {
        SunshineSyncTask.syncWeather(mApplication);
    }
}

【问题讨论】:

    标签: android repository android-room android-context


    【解决方案1】:

    在这种情况下,这不是一个坏习惯。但我宁愿使用一些依赖注入作为更强大的解决方案。您可以查看 Dagger 或 Koin(针对 Kotlin)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-24
      • 1970-01-01
      • 2022-01-05
      • 2014-05-24
      • 2021-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多