AlarmManager не работает

Мне нужно запустить AlarmReceiver через 10 секунд (например). Мне нужно, чтобы он был активирован без запуска приложения. Но не запускается ли приложение или нет, AlarmReceiver не AlarmReceiver . Какие-либо предложения?

 Intent intent = new Intent(this, AlarmReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 111, intent, 0); AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); //alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() //+ (10 * 1000), pendingIntent); Toast.makeText(this, "Alarm set", Toast.LENGTH_LONG).show(); 

Solutions Collecting From Web of "AlarmManager не работает"

 public class AlarmReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String message = "Hellooo, alrm worked ----"; Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); Intent intent2 = new Intent(context, TripNotification.class); intent2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent2); } public void setAlarm(Context context){ Log.d("Carbon","Alrm SET !!"); // get a Calendar object with current time Calendar cal = Calendar.getInstance(); // add 30 seconds to the calendar object cal.add(Calendar.SECOND, 30); Intent intent = new Intent(context, AlarmReceiver.class); PendingIntent sender = PendingIntent.getBroadcast(context, 192837, intent, PendingIntent.FLAG_UPDATE_CURRENT); // Get the AlarmManager service AlarmManager am = (AlarmManager) context.getSystemService(context.ALARM_SERVICE); am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender); } } 

Это последний код, который мне удалось получить. Вы должны добавить

  <receiver android:process=":remote" android:name="AlarmReceiver"></receiver> 

Чуть выше </application> в файле манифеста.

Это приведет к срабатыванию тревоги через 30 секунд после вызова метода SetAlarm()

На данный момент невозможно запустить Alarm без запуска приложения, вы должны однажды запустить соответствующее приложение, чтобы активировать будильник. Для этого …. !!

В вашей ALARM_ACTIVITY:

 AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent(ALARM_ACTIVITY.this,ALARM_RECEIVER.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(SetReminder.this, ID, intent, PendingIntent.FLAG_UPDATE_CURRENT); alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeInMillis() + 1000, pendingIntent); 

В вашем ALARM_RECEIVER :

 NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); notification = new Notification(R.drawable.alarmicon, "charSequence", System.currentTimeMillis()); notification.setLatestEventInfo(context, "alarmTitle", "charSequence", pendingIntent); notification.flags |= Notification.FLAG_AUTO_CANCEL; notificationManager.notify(1, notification); 

И если он все еще не работает, чтобы избавиться от android:process=":remote" может помочь часть android:process=":remote" . Работал для меня 🙂

Кроме того, в дополнение к вышесказанному, я думаю, что методы в AlarmActivity должны быть в методе oncreate активности LAUNCHER. В этом случае Alarm Activvity должна быть активностью LAUNCHER приложения. Это решило мою проблему