让我重构的应用程序使用服务而不是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?
答案 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)
在常规服务中收到的意图。