Я пытаюсь запланировать локальные уведомления в своем приложении. Вот мой класс RootReceiver
.Android: невозможно установить/получить данные с намерением
public class RebootReceiver extends BroadcastReceiver {
private String EVENT_CATEGORY = "notification_event";
@Override
public void onReceive(Context context, Intent intent) {
Debug.waitForDebugger();
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent1 = new Intent(context, AlarmScheduler.class);
PendingIntent intentExecuted = PendingIntent.getBroadcast(context, 0, intent1, PendingIntent.FLAG_CANCEL_CURRENT);
Calendar now = Calendar.getInstance();
if (!GeneralMethods.getBooleanPreference(context, ProperatiPreferences.APP_FIRST_LAUNCH)) {
intent1.putExtra(EVENT_CATEGORY, "");
now.add(Calendar.HOUR, 2);
alarmManager.set(AlarmManager.RTC_WAKEUP, now.getTimeInMillis(), intentExecuted);
} else if (!GeneralMethods.getBooleanPreference(context, ProperatiPreferences.SEARCH_AFTER_THREE_DAYS)) {
intent1.putExtra(EVENT_CATEGORY, "");
now.add(Calendar.DATE, 3);
alarmManager.set(AlarmManager.RTC_WAKEUP, now.getTimeInMillis(), intentExecuted);
}
}
}
В здесь, как вы можете видеть, я хочу, чтобы создать намерение, в котором я хочу поставить некоторые данные (intent1
). Однако намерение всегда пусто, без каких-либо дополнительных функций внутри него. Что я делаю не так?
Вот как я пытаюсь извлечь дополнительные данные из намерения.
public class AlarmScheduler extends BroadcastReceiver {
private String EVENT_CATEGORY = "notification_event";
@Override
public void onReceive(final Context context, final Intent intent) {
Log.d("com.properati.user", "AlarmScheduler.onReceive() called");
Intent eventService = new Intent(context, AlarmService.class);
context.startService(eventService);
}
и, наконец, мой AlarmService
класс:
public class AlarmService extends Service {
private String EVENT_CATEGORY = "notification_event";
@Override
public IBinder onBind(final Intent intent) {
return null;
}
@Override
public int onStartCommand(final Intent intent, final int flags, final int startId) {
Log.d("com.properati.user", "event received in service: " + new Date().toString());
if(intent.getStringExtra(EVENT_CATEGORY).equals(ProperatiPreferences.APP_FIRST_LAUNCH)){
new PushNotification(getApplicationContext()).scheduleNonOpenedNotification(getApplicationContext());
}else if(intent.getStringExtra(EVENT_CATEGORY).equals(ProperatiPreferences.SEARCH_AFTER_THREE_DAYS)){
new PushNotification(getApplicationContext()).scheduleNoSearchAfterThreeDays(getApplicationContext());
}
return Service.START_NOT_STICKY;
}
Да мой друг это был правильный ответ. Мне не хватало, что дополнительные услуги не отправляются на третье мероприятие! Спасибо! – user5035668