Friday 15 March 2013

working with android alarmmanager -



working with android alarmmanager -

i have reminder kind of app users set reminders.

most of tutorials , illustration found of alarm manager in alarm set after specific time or @ pre defined time. how can set user entered info , time. also, there more 1 alarms set user.

all these stored in database , populated in lsitview.

this fragment in user setting date , time: (texts "dte" , "tme" displays date , time user has selected) , when user clicks save button, want set alarm @ time selected user.

calendar calender = calendar.getinstance(); textview dte,tme, doit; imagebutton cal; edittext enteredtask; button save; string taskentered, dateentered, timeentered; tasks_database_operations tasksdatabaseoperations; @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view view = inflater.inflate(r.layout.add_task_fragment, container, false); dte = (textview) view.findviewbyid(r.id.datetv); tme = (textview) view.findviewbyid(r.id.timetv); log.d("lifecycle hirakdebug", "atf view created"); homecoming view; } @override public void onresume() { super.onresume(); log.d("lifecycle hirakdebug", "atf resume"); enteredtask = (edittext) getactivity().findviewbyid(r.id.user_entered_task); doit = (textview) getactivity().findviewbyid(r.id.title); cal = (imagebutton) getactivity().findviewbyid(r.id.select_date); save = (button) getactivity().findviewbyid(r.id.save_tsk); save.setonclicklistener(this); cal.setonclicklistener(this); } @override public void onclick(view view) { if (view == cal) { fragmentmanager fm = getfragmentmanager(); date_time_picker dtp = new date_time_picker(); dtp.settargetfragment(this, 1); dtp.setstyle(dialogfragment.style_no_title, r.style.mycustomdialog); dtp.show(fm, "dtp"); log.d("hirakdebug", "add_task_frag setdate called"); } else if (view == save) { savedata(); log.d("hirakdebug", "add_task_frag savedata called"); } } private void savedata() { string iidd = null; taskentered = enteredtask.gettext().tostring(); dateentered = dte.gettext().tostring(); timeentered = tme.gettext().tostring(); tasksdatabaseoperations = new tasks_database_operations(getactivity()); long id = tasksdatabaseoperations.insertdata(iidd, taskentered, dateentered, timeentered); if (id < 0) { log.e("hirakdebug", "add_task_frag failed insertdata operation"); } else { log.d("hirakdebug", "data sent inserted"); } tasksdatabaseoperations.sqlitedatabase.close(); gobacktotasklistfragment(); } private void gobacktotasklistfragment() { taskslistfrag tlf = new taskslistfrag(); add_task_frag atf = new add_task_frag(); fragmentmanager fm = getfragmentmanager(); fragmenttransaction ft = fm.begintransaction(); ft.setcustomanimations(r.anim.slide_up, r.anim.slide_down); ft.remove(this); ft.replace(r.id.dynamic_content, tlf, "tlf"); ft.commit(); log.d("hirakdebug", "add_task_frag went tasklistfrag"); } @override public void onactivityresult(int requestcode, int resultcode, intent data) { super.onactivityresult(requestcode, resultcode, data); if (resultcode == activity.result_ok && requestcode == 1){ string date = data.getstringextra("date"); string time = data.getstringextra("time"); dte.settext(date); tme.settext(time); } }

perhaps repeating alarm 1 need use. please click on link below...

set repeating alarm https://developer.android.com/training/scheduling/alarms.html

code illustration form link above:

wake device fire alarm @ exactly 8:30 a.m., , every 20 minutes thereafter:

class="snippet-code-html lang-html prettyprint-override"> private alarmmanager alarmmgr; private pendingintent alarmintent; ... alarmmgr = (alarmmanager)context.getsystemservice(context.alarm_service); intent intent = new intent(context, alarmreceiver.class); alarmintent = pendingintent.getbroadcast(context, 0, intent, 0); // set alarm start @ 8:30 a.m. calendar calendar = calendar.getinstance(); calendar.settimeinmillis(system.currenttimemillis()); calendar.set(calendar.hour_of_day, 8); calendar.set(calendar.minute, 30); // setrepeating() lets specify precise custom interval--in case, // 20 minutes. alarmmgr.setrepeating(alarmmanager.rtc_wakeup, calendar.gettimeinmillis(), 1000 * 60 * 20, alarmintent);

android

No comments:

Post a Comment