在Android中注入片段扩展服务

在Android中注入片段扩展服务,android,Android,我想使用通用服务创建一个片段,但找不到定义服务的方法 它可以这样表示 Fragment MyGenericFragment<S service> extends Fragments private S service; Fragment FragmentA extends MyGenericFragment<SpecializedService> 有没有一种方法可以这样构造片段。 目标是避免同一表示形式的代码重复。我找到了第一个解决方案,但我不知道这是否是一个

我想使用通用服务创建一个片段,但找不到定义服务的方法

它可以这样表示

Fragment MyGenericFragment<S service> extends Fragments
    private S service;

Fragment FragmentA extends MyGenericFragment<SpecializedService>
有没有一种方法可以这样构造片段。
目标是避免同一表示形式的代码重复。

我找到了第一个解决方案,但我不知道这是否是一个好的做法(很确定不是,但要做好这项工作)

FragmentA可以声明一个服务,通过Dagger inject接收它并将其设置为服务

Fragment FragmentA extends MyGenericFragment<SpecializedService>

@Inject
DedicatedService dedicatedService;

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    ((App) getActivity().getApplication()).inject(this);
    this.service = dedicatedService;
}
Fragment FragmentA扩展了MyGenericFragment
@注入
奉献服务奉献服务;
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
((App)getActivity().getApplication()).inject(this);
this.service=专用服务;
}

所说的
服务
,你是指
安卓.app.Service
?如果是这样的话,无论是活动还是片段都不会引用该
服务,也不应该引用。不,我的服务,用于做作业。我在我的应用程序中使用它们,在需要时用匕首注射它们。
Fragment FragmentA extends MyGenericFragment<SpecializedService>

@Inject
DedicatedService dedicatedService;

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    ((App) getActivity().getApplication()).inject(this);
    this.service = dedicatedService;
}