实现WakefulIntentService

时间:2011-06-20 19:20:29

标签: android wakelock

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

1 个答案:

答案 0 :(得分:0)

我认为您不能以您尝试的方式传递Location对象。我会使用putExtra来传递你需要的各个值,例如纬度和经度,时间戳等...使用putExtra传递你的基本值,如字符串,浮点数,整数,布尔等......