4

Roboguice をいじり始めたばかりで、自分のサービスの 1 つをアクティビティまたはフラグメントに挿入しようとしています。何が起こるかというと、サービスがインスタンス化されて 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>

私が得る唯一のログ出力は、「インスタンス化サービス」のログ出力です。

ProgramService が POJO ではなくサービスであることを Roboguice が認識できるようにするには、どうすればよいですか? かなり基本的なものが欠けているに違いありません。

前もって感謝します

4

0 に答える 0