我正在尝试使用 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");
}
}