package com.jdroid.android.sample.ui.service; import android.os.Bundle; import com.google.android.gms.gcm.GcmNetworkManager; import com.google.android.gms.gcm.OneoffTask; import com.google.android.gms.gcm.TaskParams; import com.jdroid.android.application.AbstractApplication; import com.jdroid.android.notification.NotificationBuilder; import com.jdroid.android.notification.NotificationUtils; import com.jdroid.android.service.AbstractGcmTaskService; import com.jdroid.java.exception.UnexpectedException; import com.jdroid.java.utils.IdGenerator; public class SampleGcmTaskService extends AbstractGcmTaskService { @Override public int doRunTask(TaskParams taskParams) { Boolean fail = taskParams.getExtras().getBoolean("fail"); if (fail) { throw new UnexpectedException("Failing service"); } else { NotificationBuilder builder = new NotificationBuilder("myNotification"); builder.setSmallIcon(AbstractApplication.get().getNotificationIconResId()); builder.setTicker("Sample Ticker"); builder.setContentTitle(getClass().getSimpleName()); builder.setContentText(taskParams.getExtras().get("a").toString()); NotificationUtils.sendNotification(IdGenerator.getIntId(), builder); return GcmNetworkManager.RESULT_SUCCESS; } } public static void runIntentInService(Bundle bundle) { OneoffTask.Builder builder = new OneoffTask.Builder(); builder.setPersisted(true); builder.setExecutionWindow(0, 5); builder.setExtras(bundle); builder.setTag(SampleGcmTaskService.class.getSimpleName()); builder.setService(SampleGcmTaskService.class); GcmNetworkManager.getInstance(AbstractApplication.get()).schedule(builder.build()); } }