I need to implement Notification Reminder in my android app -
my requirment: want application show reminder notification on every fri @ 8 am
i have used alarmmanager, broadcastreceivers implement reminder notification. problem getting is, when set notification time using current scheme time , add together 2 minutes in it... works when utilize in way, trigger notification after 2 minutes.
but,
when utilize calender instance set notification time @ specific time of day, trigger reminder notification when ever start/open app on device/emulator , secondly wont trigger notification @ specified time
following classes
here homeactivity.java
// long when = system.currenttimemillis()+2*60*1000; // notification time // when run above commented code… reminder triggerd after 2 mins //but when utilize below code using calender instance, trigger reminder immidietly when run on device/emulator calendar calendar = calendar.getinstance(); //calendar.set(2014,calendar.getinstance().get(calendar.month),calendar.sunday , 8, 00, 00); calendar.set(2014,5,1,19,55,00); long when = calendar.gettimeinmillis(); // notification time log.d("time", when+" "); intent intentalarm = new intent(this, alarmreceiver.class); // create object alarmmanager alarmmanager = (alarmmanager)getsystemservice(context.alarm_service); //set alarm particular time alarmmanager.set(alarmmanager.rtc_wakeup,when, pendingintent.getbroadcast(this,1, intentalarm, pendingintent.flag_update_current)); here alarmreceiver.java
package com.myapp.app; import java.util.calendar; import java.util.gregoriancalendar; import android.app.notification; import android.app.notificationmanager; import android.app.pendingintent; import android.app.taskstackbuilder; import android.content.broadcastreceiver; import android.content.context; import android.content.intent; public class alarmreceiver extends broadcastreceiver { @override public void onreceive(context context, intent intent) { calendar = gregoriancalendar.getinstance(); int dayofweek = now.get(calendar.date); if(dayofweek != 5 && dayofweek != 7) { notification.builder mbuilder = new notification.builder(context) .setsmallicon(r.drawable.ic_launcher) .setcontenttitle("here title") .setcontenttext("here text"); intent resultintent = new intent(context, homeactivity.class); taskstackbuilder stackbuilder = taskstackbuilder.create(context); stackbuilder.addparentstack(homeactivity.class); stackbuilder.addnextintent(resultintent); pendingintent resultpendingintent = stackbuilder.getpendingintent(0, pendingintent.flag_update_current); mbuilder.setcontentintent(resultpendingintent); notificationmanager mnotificationmanager = (notificationmanager) context.getsystemservice(context.notification_service); mnotificationmanager.notify(1, mbuilder.build()); } } } manifest.xml
i’ve added next in manifest
<receiver android:name="com.myapp.app.alarmreceiver" /> thanks in advance help... :)
you need utilize setrepeating repeat alarm every week.
alarmmanager.setrepeating(alarmmanager.rtc, when, alarmmanager.interval_day * 7, pendingintent); p.s. don't set year. otherwise, alarm trigger once.
android notifications broadcastreceiver alarmmanager reminders
No comments:
Post a Comment