T.Barrett T.Barrett - 4 months ago 32
Android Question

Using a service to request activity updates - how to process Intents

Have an application that I am refactoring to use a service instead of an IntentService to process Activity updates. Currently using requestActivityUpdates to use a method that collects the intent and sends it to a IntentService based class for processing.



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

Is there a way to process the pendingIntent directly in my service class without passing it off to the IntentService?


PendingIntent.getService() works for both IntentService and regular Service. Just replace

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


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

(or whatever the name of your Service is).

Also see the documentation for PendingIntent.getService():

Retrieve a PendingIntent that will start a service, like calling Context.startService(). The start arguments given to the service will come from the extras of the Intent.

The intent that is received by IntentService.onHandleIntent(Intent intent) will in a regular Service be received by onStartCommand(Intent intent, int flags, int startId).