我刚刚开始玩Roboguice,我正试图在一个活动或片段中注入我的一个服务。发生的事情是我的服务只是实例化并注入POJO并且没有调用生命周期方法,这让我怀疑我忘了做某事。但是,我只能找到注入的着名服务的例子。
服务看起来像这样:
public class ProgramService extends RoboService {
public ProgramService() {
Log.i(getClass().getSimpleName(), "instantiating service " + hashCode());
}
public class Binder extends android.os.Binder {
public ProgramService getService() {
return ProgramService.this;
}
}
@Override
public IBinder onBind(Intent arg0) {
Log.i(getClass().getSimpleName(), "binding service " + hashCode());
return new Binder();
}
@Override
public void onCreate() {
super.onCreate();
Log.i(getClass().getSimpleName(), "creating service " + hashCode());
}
@Override
public void onDestroy() {
super.onDestroy();
Log.i(getClass().getSimpleName(), "destroying service " + hashCode());
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i(getClass().getSimpleName(), "starting service " + hashCode());
return START_STICKY;
}
}
我的活动看起来像这样:
public class ProgramListActivity extends RoboFragmentActivity implements
ProgramListFragment.Callbacks {
private boolean mTwoPane;
@Inject
private ProgramService programService;
...
服务在清单中声明如下:
<service android:enabled="true" android:exported="false" android:name=".ProgramService"></service>
我得到的唯一日志输出是“实例化服务”。
我有什么办法让Roboguice知道ProgramService不是POJO而是服务?我必须遗漏一些相当基本的东西。
提前致谢