Reputation: 93
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
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