Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-按计划运行提示符_Java_Android_Android Alertdialog - Fatal编程技术网

Java Android-按计划运行提示符

Java Android-按计划运行提示符,java,android,android-alertdialog,Java,Android,Android Alertdialog,我请求应用程序提示用户进行更新(如果策略管理器站点说有更新可用),如果用户拒绝,则在N分钟后再次提示。我看到过类似的问题,但当我尝试使用处理程序或计时器实现代码时,活动超出了范围,或者发生了我无法完全理解的崩溃,我使用的类需要应用程序上下文和活动来提取各种字符串变量并执行任务 因此,我想概括一下这个问题,因为我可能想得不对: 计划更新提示的最佳方式是什么?可以取消该提示并将用户返回到他们正在进行的活动(然后计划在N分钟内再次运行),或者将用户引导到网站?您应该使用带有PendingEvent和B

我请求应用程序提示用户进行更新(如果策略管理器站点说有更新可用),如果用户拒绝,则在N分钟后再次提示。我看到过类似的问题,但当我尝试使用处理程序或计时器实现代码时,活动超出了范围,或者发生了我无法完全理解的崩溃,我使用的类需要应用程序上下文和活动来提取各种字符串变量并执行任务

因此,我想概括一下这个问题,因为我可能想得不对:


计划更新提示的最佳方式是什么?可以取消该提示并将用户返回到他们正在进行的活动(然后计划在N分钟内再次运行),或者将用户引导到网站?

您应该使用带有PendingEvent和BroadcastReceiver的AlarmManager。 您可以使用alarm manager设置时间,并使用
PendingIntent.getBroadcast
方法为其设置一个PendingIntent。
此方法提供的参数之一是BroadcastReceiver类,该类将在时间结束时接收调用,在该类中,您可以执行几乎任何您想执行的操作,这可能会在您的情况下启动一个新活动。

BroadcastReceiver似乎无法创建警报对话框,因为它们不是活动//编辑后:那么我必须再做一个屏幕来弹出警报?我想在这一点上,我只是将按钮添加到活动中,而不是弹出警报。如果您想要对话框的外观,您可以创建带有对话框主题的活动,或者只需在活动中执行一项操作,即创建警报对话框。顺便说一句,我相信在我的解决方案中,您可以通过将PendingEvent指定为activity类而不是使用getBroadcast方法来节省一个步骤。。。我通常更喜欢使用接收器,因为它将警报处理从活动逻辑中移除。