Я создал приложение, которое рассчитывает определенный набор времени дня в соответствии с географическими координатами. Он дает уведомления о тех временах.
Я использовал повторяющуюся тревогу для уведомления ежедневно (хотя сроки меняются для каждого дня, следовательно, не точные).
Но он не уведомляет меня через 3 дня (я не заметил точное количество дней), пока не произойдет сброс. Почему это так?
Сейчас я решил использовать сервис, который будет устанавливать уведомления ежедневно , следовательно, точный. Как мне написать услугу и позвонить ей?
public void alarmNoon(long diff) {
Intent intent = new Intent(this, PNoon.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,
intent, PendingIntent.FLAG_CANCEL_CURRENT);
if (checkadan(1)==true){
if (diff>=0){
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+diff,
(1000*60*60*24), pendingIntent);}else{
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+diff+(1000*60*60*24), (1000*60*60*24), pendingIntent);
}}else{
am.cancel(pendingIntent);
}
}
diff - разница во времени между полуднем и текущим временем
public class PNoon extends BroadcastReceiver {
Dialog db;
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(ns);
Notification notification = new Notification( R.drawable.icon, "Time", System.currentTimeMillis());
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, intent, 0);
notification.setLatestEventInfo(context, "Time", "Its Noon", contentIntent);
notification.flags=Notification.FLAG_AUTO_CANCEL;
notification.sound=Uri.parse("android.resource://net.ttct.time/"+R.raw.NoonAnnouncement);
mNotificationManager.notify(1, notification);
}
}
Также звук прекращается, когда панель уведомлений открывается, она должна останавливаться только при касании элемента в панели уведомлений.
<receiver android:process=":remote" android:name="PNoon"></receiver>