使用Roboguice注入自定义服务时出现问题

时间:2012-09-05 17:23:01

标签: android roboguice

我刚刚开始玩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而是服务?我必须遗漏一些相当基本的东西。

提前致谢

0 个答案:

没有答案