android - PopUp Activity starts again when it is started from "recent apps" -
i have popup activity starts when alarmmanager receives alarm.
alarmreceiver extends wakefulbroadcastreceiver:
@override public void onreceive(context context, intent intent) { intent service = new intent(context, alarmservice.class); service.putextras(intent); // start service, keeping device awake while launching. startwakefulservice(context, service); }
alarmservice extends intentservice:
@override protected void onhandleintent(intent intent) { intent = new intent(); i.setclass(this, popupactivity.class); startactivity(i); alarmreceiver.completewakefulintent(intent); }
popupactivity:
@override protected void oncreate(final bundle savedinstancestate) { super.oncreate(savedinstancestate); getwindow().setflags(layoutparams.flag_not_touch_modal, layoutparams.flag_not_touch_modal); getwindow().setflags(layoutparams.flag_watch_outside_touch, layoutparams.flag_watch_outside_touch); setcontentview(r.layout.layout_dialog); powermanager pm = (powermanager) getsystemservice(context.power_service); powermanager.wakelock wl = pm.newwakelock(powermanager.partial_wake_lock, clientconstants.wake_lock_notification); // acquire lock wl.acquire(); if (canvibrate){ vibrator = (vibrator) getsystemservice(context.vibrator_service); vibrator.vibrate(new long[]{ 0, 200, 500 },0); } if (canring){ mediaplayer = new mediaplayer(); try { mediaplayer.setdatasource(this, getalarmuri()); final audiomanager audiomanager = (audiomanager) getsystemservice(context.audio_service); if (audiomanager.getstreamvolume(audiomanager.stream_alarm) != 0) { mediaplayer.setaudiostreamtype(audiomanager.stream_alarm); mediaplayer.prepare(); mediaplayer.start(); } } catch (ioexception e) { } } findviewbyid(r.id.dialog_ok_button).setonclicklistener(new onclicklistener() { @override public void onclick(view v) { stopringing(); finish(); } }); // release lock wl.release(); } private void stopringing(){ if (canring && mediaplayer.isplaying()) mediaplayer.stop(); if (canvibrate){ vibrator.cancel(); } }
popupactivity started alarm manager. if popupactivity started when application not active application, , if user presses "ok button", activity disappears. nothing wrong right here till now. the problem is, if user opens recent apps screen , selects activity new popupactivity started again. how can rid off problem?
when declare popupactivity in manifest, make sure include android:nohistory="true"
. mean open "recents", popup activity forgotten, , return before when re-open app.
Comments
Post a Comment