zjadarka
zjadarka

Reputation: 93

How to receive extras from pendingintent?

I have a service that starts notification:

public class Notify extends Service{
@Override
public void onCreate() {

        Intent resultIntent = new Intent(this, Main.class);
        PendingIntent pIntent = PendingIntent.getActivity(this, 0, resultIntent, 0);

        Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

        Notification noti_builder = new Notification.Builder(this)
            .setSmallIcon(R.drawable.icon)
            .setContentTitle("Title")
            .setContentText("Text")
            .setSound(uri)
            .setContentIntent(pIntent)
            .build();

        NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

        noti_builder.flags |= Notification.FLAG_AUTO_CANCEL;

        notificationManager.notify(0, noti_builder);
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
}

Service starts inside other class here:

NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notificationManager.cancelAll();
Intent intent = new Intent(AddAlarm.this, Notify.class);
intent.putExtra("id", ID);
AlarmManager manager = (AlarmManager)getSystemService(Activity.ALARM_SERVICE);
PendingIntent pendingIntent = PendingIntent.getService(AddAlarm.this, 0, intent, 0);
manager.set(AlarmManager.RTC_WAKEUP, notifyDate.getTimeInMillis(), pendingIntent);

I want to get extras inside service. Any suggestion how to do that? Thank you.

Upvotes: 1

Views: 957

Answers (1)

AndroidGuy
AndroidGuy

Reputation: 3451

In the Notify class, move your code from the onCreate method to the onStartCommand method which has the following signature

onStartCommand (Intent intent, int flags, int startId)

then you can access the extras from the intent passed into the method.

Upvotes: 1

Related Questions