4

我刚开始玩 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 而是服务?我一定错过了一些相当基本的东西。

提前致谢

4

0 回答 0