Android 当应用程序恢复时,报警警报对话框恢复
我早些时候问过这个问题,但有人认为我解释得不够,于是对答案投了反对票,再也没有投赞成票,尽管在我添加了解释后,他确实得到了答案。现在没有人愿意为我提供关于这个问题的解决方案。所以我在这里又问了一遍 我有一个应用程序,用户可以设置一个警报,并期望该应用程序弹出一个屏幕(无论该应用程序当前处于活动状态还是处于后台状态,或者被关闭),显示一条带有“确定”按钮的消息。大概是这样的: 情景1:快乐流 应用程序已打开并正在运行Android 当应用程序恢复时,报警警报对话框恢复,android,android-activity,android-alarms,activity-finish,Android,Android Activity,Android Alarms,Activity Finish,我早些时候问过这个问题,但有人认为我解释得不够,于是对答案投了反对票,再也没有投赞成票,尽管在我添加了解释后,他确实得到了答案。现在没有人愿意为我提供关于这个问题的解决方案。所以我在这里又问了一遍 我有一个应用程序,用户可以设置一个警报,并期望该应用程序弹出一个屏幕(无论该应用程序当前处于活动状态还是处于后台状态,或者被关闭),显示一条带有“确定”按钮的消息。大概是这样的: 情景1:快乐流 应用程序已打开并正在运行 当报警时间到时,屏幕上会弹出报警对话框,并显示消息和OK按钮,报警开始响起
- 当报警时间到时,屏幕上会弹出报警对话框,并显示消息和OK按钮,报警开始响起
- 用户单击OK按钮确认报警
- 对话框关闭,报警停止响铃->finish(),在OK的onClick方法中调用
- 当报警时间到时,屏幕上会弹出报警对话框,并显示消息和OK按钮,报警开始响起
- 用户单击“确定”将其取消-->报警停止,对话框取消-->用户转到最近-->恢复应用-->报警对话框再次弹出,报警开始响起李>
在我所看到的每一个地方,只有这两个建议的解决方案将活动从后堆栈中移除,再也不会出现。但这些似乎对我没用。我确信我遗漏了一些基本的东西,但我一生都无法思考或发现它是什么。我假设您使用的是android alarm
setRepeating()
。当用户单击“确定”按钮时,您需要取消报警
PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.cancel(sender);
好吧,你说得对,我没有取消闹钟。但是在这种情况下,我点击OK,当我从最近的状态恢复我的应用时,通知对话框(这是一个Android活动)onCreate被调用。就是在这里,铃声被设置为开始鸣响。因此,再次响起的不是警报本身,而是安卓选择在恢复时显示的活动对话框,可能是因为它是我应用程序上最后一个已知的活动。所以我觉得要摆脱后台的活动了,怎么办?我现在正在取消警报,点击OK。我不知道如何从背后摆脱这种活动。我想要的行为是。。。报警对话框应在时间结束时显示-->用户单击确定-->对话框解除-->用户转到最近并继续应用-->应用程序显示主屏幕,就像新启动应用程序一样。是否使用了警报对话框?如果是,请检查。