问题标签 [alarmmanager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
88781 浏览

java - Android:如何使用警报管理器

我需要在设置后 20 分钟后触发一段代码AlarmManager

AlarmManager有人可以向我展示如何在 ِAndroid中使用的示例代码吗?

几天来我一直在玩一些代码,但它不起作用。

0 投票
1 回答
4346 浏览

android - Android - AppWidgets、AlarmManager 和 AsyncTask

我在使用AlarmManager生成的广播更新应用小部件时运气不佳。这就是我所做的:

初始化AlarmManager_AppWidgetProvider#onEnabled

我还定义了广播接收器,它只监听由AlarmManager. 当更新被触发时,代码运行AsyncTask进行网络调用。当AsyncTask完成 ( onPostExecute) 时,它使用先前获得的实例AppWidgetManager来更新小部件。这一切实际上运行良好,直到在日志中我看到消息"Process com.foo.myapp (pid 12345) has died",之后AlarmManager再也不会触发另一个更新。

我是否需要进行某种检查以重新启动警报?例如,当用户访问小部件的父应用程序时?如果我的应用在请求过程中死机,如何确保我可以完成长时间运行的任务并返回到小部件?

0 投票
1 回答
1573 浏览

android - Android - AlarmManager 恢复

感谢TasKiller我有可靠的方法来关闭来自我AppWidget的更新AlarmManager

现在,撇开讽刺,我如何从这样的事件中恢复过来?到目前为止,我只看到Alerts只有在重新启动手机后才会复活。

我可以将恢复代码粘贴到几个地方,例如Activity#onCreate属于我的应用程序和小部件的各种地方,但有没有更好的方法?

此外,如果警报正常怎么办 - 有没有办法检测到它而不运行AlarmManager#setRepeating

还是多次运行它有什么害处?

0 投票
3 回答
2031 浏览

android - 在 Android 中安排通知

我需要能够在未来的不同时间安排多个通知。

我尝试使用 AlarmManager 执行此操作,但这不合适,原因如下。来自 AlarmManager.set():“如果已经为这个 Intent 调度了一个警报(两个 Intent 的相等性由 filterEquals(Intent) 定义),那么它将被删除并替换为这个。”

猜猜看,除了不同的 Extra 之外,发送意图相同的(但那些不计入 filterEquals)。

那么如何安排多个通知,当我的应用程序被杀死时仍然会显示(我尝试 AlarmManager 的全部原因)?

谢谢。

0 投票
1 回答
1727 浏览

android - AlarmManager.setRepeating 是幂等的吗?

在我的 android 应用程序中,我设置了一个我想要重复发生的警报,因此使用 AlarmManager.setRepeating()。

我不想跟踪自己是否设置了警报(听起来像是一个坏主意,在某些时候很容易失败),并且似乎没有 API 支持检查是否已经为给定设置了特定警报意图。

因此,每次我的应用程序激活时,我都会悲观地重置警报:

问题:调用 setRepeating() 是否是幂等的,即我是否需要显式取消任何先前的警报,或者我可以安全地调用 setRepeating() 并完成它?

0 投票
1 回答
2440 浏览

android - 为什么当应用程序被杀死时,AlarmManager 广播会被取消?

好的,所以我注册了两个 BroadcastReceiver。当应用程序关闭时,它们都会在适当的时间触发并做适当的事情。

如果应用程序被关闭然后被杀死(比如使用 AppKiller),接收者永远不会收到他们的广播,并且什么也没有发生。

如果父应用程序由于内存不足而被杀死,大概会发生同样的事情,那么我如何确保这些广播被触发/接收。API 指出,即使应用程序被杀死,它也应该触发,还有其他人有这种情况的经验吗?

如果它有助于我的清单是:

并且在 AlarmManager/BroadcastReceivers 中没有发生任何深奥的事情

0 投票
2 回答
2757 浏览

android - Intent.putExtras 不一致

我对 AlarmManager 有一个奇怪的情况。我正在使用 AlarmManager 安排一个事件,并使用 intent.putExtra 传入一个字符串。琴弦是静音或振动,当接收器启动时,电话应打开振铃器或将电话设置为振动。日志语句每次都正确输出期望值。

警报执行时触发的接收器也有一个日志语句,我可以第一次看到该语句输出预期的字符串 SILENT 或 VIBRATE 但对于每个后续执行,输出显示接收器端的原始值。警报执行,然后我将 putExtra 的值更改为相反的字符串,尽管来自上面代码的调用显示传入了新值,但接收器仍显示先前的值事件。 setAction 的值每次都是相同的。

有什么想法吗?

0 投票
1 回答
2020 浏览

android - 如何在首选项更改时重新安排警报管理器

我有一个 Android 服务。当手机启动时,广播接收器会收到通知,并安排服务以 X 分钟的间隔重复运行。从此以后,每隔 X 分钟,另一个广播接收器会收到这些通知并启动服务,这完成了它的工作并退出。到目前为止,一切都很好。

现在我希望那些 X 分钟是可配置的。我有一个类似于下面链接中给出的 perf.xml。这个 XML 捕获了我的所有偏好以及服务计时器的偏好。 http://android-journey.blogspot.com/2010/01/for-almost-any-application-we-need-to.html

现在当用户改变偏好时;如何重新安排闹钟?有没有办法可以在偏好更改时设置监听器?我只使用 XML 文件来指定首选项屏幕。

欢迎任何想法。

干杯

0 投票
2 回答
333 浏览

android - 如何设置每天发出的杀戮安全警报?

我知道如何设置警报以重复触发,但是在我的应用程序被杀死后警报停止触发。

如何确保警报在设置时继续触发?

0 投票
1 回答
4899 浏览

android - Android - 每天凌晨 4 点运行服务

我想知道每天凌晨 4 点运行服务的最佳实践。

认为我应该这样做的方式是使用 AlarmManager 创建一个新的重复警报,并让它在凌晨 4 点运行服务。问题是,我不确定将代码放在哪里来设置警报。

我是否在我的主要活动中将其作为 OnCreate 方法中的首要任务之一?我是否使用广播接收器和意图做一些时髦的事情?当用户更新我的应用程序时会发生什么?当用户重新启动时会发生什么?

对于这些问题的任何帮助将不胜感激:) 示例代码也会有所帮助!

巴拉