我正在尝试使用CommonsWare示例实现WakefulIntentService。我需要将Location传递给WakefulIntentService的子类,但我无法做到这一点。
我使用:
调用sendWakefulWorkIntent 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");
}
}
答案 0 :(得分:0)
我认为您不能以您尝试的方式传递Location对象。我会使用putExtra来传递你需要的各个值,例如纬度和经度,时间戳等...使用putExtra传递你的基本值,如字符串,浮点数,整数,布尔等......