在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;
}