Я хочу запустить службу уведомлений с AlarmManager.Тем не менее, это не всегда работает, когда сильно ударил приложение в слое недавних задач.Я также опробовал JobIntentService и JobService с собственными записями в манифесте, все привело к одной и той же проблеме: Notification или также startActivity () не вызывают (иногда !, может быть, в режиме ожидания?) После того, как я закрылapp.
Теперь я подумал, что, возможно, вернусь к AlarmManager, так как он здесь работает для других людей.
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
{
AlarmManager alarmManager = (AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(getActivity(), AlertReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getActivity(), 1, intent, 0);
if(Build.VERSION.SDK_INT <= 23)
{
alarmManager.setExact(AlarmManager.RTC_WAKEUP, timeForAlarm, pendingIntent);//Alarm with setExact and AlertReceiver should be better than the old Alarm Manager
}
else
{
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, timeForAlarm, pendingIntent);//Alarm with setExact and AlertReceiver should be better than the old Alarm Manager
}
}
else
{
final AlarmManager alarm = (AlarmManager) getContext().getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(getActivity(), Service_Notification.class);
PendingIntent startPendingIntent = PendingIntent.getService(getActivity(), 0, intent, 0);
alarm.set(AlarmManager.RTC_WAKEUP, timeForAlarm, startPendingIntent);
}
Это мой AlertReceiver для версий выше KitKat (я такжепопробовал расширяет BroadCastReceiver)
public class AlertReceiver extends WakefulBroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
context.startService(new Intent(context, Service_Notification.class));
}
}
Итак, что мне теперь делать?Заранее спасибо