使用服务请求活动更新 - 如何处理Intent

时间:2016-09-29 14:34:16

标签: android android-activity service

让我重构的应用程序使用服务而不是IntentService来处理Activity更新。目前使用requestActivityUpdates来使用收集意图的方法并将其发送到基于IntentService的类进行处理。

ActivityRecognition.ActivityRecognitionApi.requestActivityUpdates(
            mGoogleApiClient,
            DETECTION_INTERVAL_IN_MILLISECONDS,
            getActivityDetectionPendingIntent()
    ).setResultCallback(this);

private PendingIntent getActivityDetectionPendingIntent() {
    Intent intent = new Intent(getApplicationContext(), ActivityIntentService.class);
    return PendingIntent.getService(getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}

有没有办法直接在我的服务类中处理pendingIntent而不将其传递给IntentService?

1 个答案:

答案 0 :(得分:1)

PendingIntent.getService()适用于IntentService和常规服务。只需替换

Intent intent = new Intent(getApplicationContext(), ActivityIntentService.class);

Intent intent = new Intent(getApplicationContext(), ActivityService.class);

(或您服务的任何名称)。

另请参阅PendingIntent.getService()的文档:

  

检索将启动服务的PendingIntent,类似于调用Context.startService()。给予服务的起始参数将来自Intent的附加内容。

IntentService.onHandleIntent(Intent intent)将收到onStartCommand(Intent intent, int flags, int startId)在常规服务中收到的意图。