android - waking up device in an activity started by AlarmManager -


i have app starts full screen activity @ given time (based on user settings). need wake device when happens user can see activity. use alarmmanager schedule these events , seems work fine (i didn't notice missed alarm event), however, on devices happens screen doesn't turn on. in case if manually wake device can see activity there , it's running didn't turned on screen. can't reproduce every time, works, doesn't. there devices work fine time. can see problem on different os versions it's not specific sdk guess.

an example how set alarmmanager:

intent myintent = new intent(context, alarmactivity.class); myintent.putextras(extras); pendingintent pintent = pendingintent.getactivity(context, id, myintent, pendingintent.flag_update_current); alarmmanager alarm = (alarmmanager) context.getsystemservice(context.alarm_service);  alarm.set(alarmmanager.rtc_wakeup, system.currenttimemillis() + timeinmillis, pintent); 

here use in oncreate of alarmactivity:

powermanager pm; wakelock wakelock; wakelock cpuwake;  @override protected void oncreate(bundle savedinstancestate) {     // todo auto-generated method stub     super.oncreate(savedinstancestate);      pm = (powermanager) getsystemservice(power_service);     cpuwake = pm.newwakelock(powermanager.partial_wake_lock, tag);     cpuwake.acquire();     wakelock = pm.newwakelock(powermanager.acquire_causes_wakeup             | powermanager.full_wake_lock, tag);     if (!wakelock.isheld()) {         wakelock.acquire();     }       final window win = getwindow();     win.addflags(windowmanager.layoutparams.flag_keep_screen_on             | windowmanager.layoutparams.flag_dismiss_keyguard             | windowmanager.layoutparams.flag_show_when_locked             | windowmanager.layoutparams.flag_turn_screen_on             | windowmanager.layoutparams.flag_fullscreen);     requestwindowfeature(window.feature_no_title);     setcontentview(r.layout.layout); //rest of code 

note: tried without partial_wake_lock, result same behavior.

any idea do wrong?

i appreciate comment problem causes me headache now.

thank you.

well, speed debugging process decided use 1 of test devices able use reproduce issue. after lot of tries realized stock clock behaving same way negated tries. anyway able reproduce on device (less likely).

what ended using (based on other answers) broadcastreciever alarms , use wakelock in static way (acquire on receive of broadcast , release onstop of activity). far seems work.

i had wakelock issue in service, ended using wakefulbroadcastreceiver , startwakefulservice (for enough wake cpu).


Comments

Popular posts from this blog

java - WrongTypeOfReturnValue exception thrown when unit testing using mockito -

php - Magento - Deleted Base url key -

android - How to disable Button if EditText is empty ? -