CommonsWare の例を使用して WakefulIntentService を実装しようとしています。Location を WakefulIntentService のサブクラスに渡す必要がありますが、それができませんでした。
以下を使用して sendWakefulWork を呼び出します。
Intent i = new Intent(context, WakefulIntentService.class);
i.putExtra(Constants.LOCATION, location);
WakefulIntentService.sendWakefulWork(context, i);
WakefulIntentService クラスには、次のメソッドがあります。
public static void sendWakefulWork(Context context, Intent i) {
getLock(context).acquire();
i.setClass(context, ProtocolController.class);
context.startService(i);
}
そして最後に、ProtocolController クラス:
public class ProtocolController extends WakefulIntentService {
public ProtocolController() {
super(ProtocolController.class.getSimpleName());
Log.d(Constants.TAG, "starting Protocol");
}
@Override
public void onCreate(){
super.onCreate();
}
@Override
protected void doWakefulWork(Intent intent) {
Log.d(Constants.TAG, "Doing wakeful work");
}
}