услуги с использованием диспетчера тревог - PullRequest
0 голосов
/ 13 мая 2011

Это мой код, но он не работает.

В настройках активностей:

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent intent = new Intent(this, OnBootReceiver.class);
pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
alarmManager.set(AlarmManager.RTC_WAKEUP, SystemClock.elapsedRealtime()+1000, 
                 pendingIntent);

В BroadcastReceiver:

NotificationManager mgr = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
CharSequence from = "xyz";
CharSequence message = "Crazy About Android...";
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, new Intent(context, Settings.class), 0);
Notification notif = new Notification(R.drawable.icon,  "Crazy About Android...", System.currentTimeMillis());
notif.setLatestEventInfo(context, from, message, contentIntent);
mgr.notify(1, notif);

1 Ответ

0 голосов
/ 13 мая 2011

Если вы пытаетесь начать свое намерение в течение 1 секунды, используя блок AlarmManager.RTC_WAKEUP, Вы можете использовать System.currentTimeMillis() вместо SystemClock.elapsedRealtime()

Различия объясняются здесь: http://developer.android.com/reference/android/os/SystemClock.html AlarmManager.RTC_WAKEUP должен использоваться с currentTimeMillis();

В противном случае вы можете использовать флаг: AlarmManager.ELAPSED_REALTIME_WAKEUP для предоставления времени, рассчитанного с помощью SystemClock.elapsedRealtime()

Флаги объясняются здесь: http://developer.android.com/reference/android/app/AlarmManager.html.

...