问题标签 [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.
android - 使用 Alarmmanager 在特定时间启动服务
我搜索了很多地方,但找不到关于如何在每天的特定时间使用 AlarmManager 启动服务(或者如果那不可能,那么是活动)的清晰顺序解释?
我想注册几个这样的警报并触发它们应该会导致服务启动。我将在服务中有一小段代码,然后可以执行,我可以永久完成服务......
我尝试使用此代码在 4.45 激活警报...但它没有触发服务...我必须保持进程运行吗?我做错什么了吗???
还有一件事,如果我使用以下代码,我的服务将得到完美执行:
android - AlarmManager 和 BroadcastReceiver 而不是 Service - 这很糟糕吗?(超时)
背景资料:
即使我的应用程序关闭,我也需要大约每小时左右更新一次网络上的一些数据。数据本身的更新大约需要 40 秒到 1 分钟。然后将其保存为可序列化的文件。我的应用程序启动时会读取此文件。
这是我目前采取的方法(不使用服务)
像这样使用 AlarmManager 和 BroadcastReceiver :
我的RepeatingAlarmReceiver_REFRESH_DATA.class负责从 Web 更新数据:
在清单中我有:
问题 :
警报按时触发并开始更新,但大约 10 秒后它停止(超时):
06-25 11:55:05.278: WARN/ActivityManager(76): 广播 BroadcastRecord{44bb4348 null} 超时-receiver=android.os.BinderProxy@44bcc670
06-25 11:55:05.278:WARN/ActivityManager(76):超时期间的接收器:ResolveInfo{44bb42c0 com.cousinHub.myapp.RepeatingAlarmReceiver_REFRESH_DATA p=0 o=0 m=0x0}
06-25 11:55:05.278: INFO/Process(76): 发送信号。PID:819 SIG:9
06-25 11:55:05.298: INFO/ActivityManager(76): 进程 com.cousinHub.myapp:remote (pid 819) 已经死亡。
ps:奇怪的是,这个“超时”在我的 HTC Hero(仍然在 Android 1.5 - API 级别 4 上)大约 10 秒后不会发生,但在我的 Nexus One(2.1-update1)上很好
问题 :
- 为什么这个超时?有什么简单的方法可以避免这种情况吗?
- 我是否在清单中正确设置了我的 BroadcastReceiver ?我需要添加一些东西(以避免这种超时)吗?
- 我绝对应该为这种“从 Web 刷新”功能寻求服务吗?(考虑这篇文章:http ://www.androidguys.com/2009/09/09/diamonds-are-forever-services-are-not/ )如果是(我应该切换到服务):任何好的代码片段/本教程...
一如既往,感谢您的帮助。
H。
android - AlarmManager - 如何在每小时的顶部重复警报?
我想让一个事件每小时触发一次(在 5:00、6:00、7:00 等......)。我尝试使用带有线程的持久后台服务,但它不是正确的解决方案,因为:
- 电池消耗
- 服务终止,由于 android 内存管理
所以我正在尝试使用 AlarmManager。如果我将警报设置为在 X 秒内触发(使用“设置”方法),它会起作用。但是我怎样才能在每小时的顶部重复一个事件(使用“setRepeating”方法),直到闹钟被取消?
谢谢!
android - AlarmManager 在模拟器中触发但不在物理设备上
我有一个调用 AlarmManager 的应用程序
在清单中我有强制性的条目
MyEventReceiver 看起来像这样
当警报被激活时,MyEventReceiver 应该被启动并做一些事情,即使我的应用程序没有运行。在模拟器中是这种情况,但在实际设备上并非如此。
例如,我将在模拟器上启动 MyApplication,在 DDMS 中我可以看到 MyApplication 的运行过程。我在 MyApplication 中添加了一个警报,然后在 DDMS 中终止了 MyApplication 的进程。当警报触发时,MyEventReceiver 开始工作,在 DDMS 中我看到两个进程,MyApplication 和 MyApplication:remote。
在实际设备上,如果我启动 MyApplication,添加一个警报,然后在警报执行的时间到来时使用任务杀手终止进程,没有任何反应。如果我将设备连接到调试器并使用 DDMS 而不是设备上的任务杀手停止进程,那么警报将触发并按预期工作。
有人可以帮我理解为什么会这样吗?我的印象是,一旦安排了警报,它就会持续存在,除非重新启动设备。设备在警报应该执行时处于唤醒状态。
android - 为什么我的 android 警报管理器会立即触发?
我正在按照示例代码每 10 秒发送一次更新通知。代码如下,它位于一个UpdateService
for 中AppWidgetProvider
。如果我放了一个,Thread.sleep(10*1000);
我可以看到我的服务循环的预期行为。我显然有一些根本性的错误会立即触发。它应该是PendingIntent
一个警报,它将向我的听众广播更新。
android - 带有日历的警报管理器的随机时间表
我正在尝试安排我的 AlarmManager 每天以 22:00 - 06:00 之间的不同随机时间醒来。
我已经尝试过这种技术,但它似乎不起作用:
}
我的预期结果是,每 15 秒就会有一次警报。这是输出:
如您所见,它不会每 15 秒报警一次。
我想实现重新安排一个新的闹钟时间的情况,每次它进入这个功能
任何解决方案或其他有效建议都将受到欢迎。
谢谢。
android - 安卓报警管理器
好的,我已经尝试了 AlarmManager 的两个示例——一个来自 commonsware 网站,一个来自 manning 网站。我目前正在使用的代码来自曼宁网站:[ http://unlocking-android.googlecode.com/svn/chapter8/trunk/SimpleAlarm/][1]
有两个类,AlarmReceiver 和 GenerateAlarm。任何人都知道为什么吐司不会在模拟器中显示?我在想这是因为我位于东部时区并且它使用 UTC,但是我摆弄了不同的东西,但它们似乎都不起作用。
android - android意图警报管理器
我正在尝试创建将使用警报管理器设置的意图。目前,我可以用一个意图来执行此操作,向其中添加额外的数据(字符串,但我将它们作为一个带有分隔符的字符串发送),一切正常并在正确的时间关闭。但是,当我尝试像这样发送多个意图时,它们会被覆盖,并且只有一个在正确的时间发出。我如何构建我的意图,使它们看起来与警报管理器不同(我认为它们在运行 filterIntent() 时会被删除)。
长话短说-putExtra() 使所有意图看起来仍然相同......我怎样才能让它们看起来不同,这样它们就不会被删除(并跟踪它们以防我想删除特定的意图)
android - 带有广播接收器的 Android 警报管理器在代码中而不是清单中注册
我想使用警报在特定时间运行一些代码。我已经使用清单中注册的广播接收器成功实现了一个警报,但据我了解,此方法为广播接收器使用了一个单独的类。
我可以使用此方法开始另一个活动,但我不能使用它在我的主要活动中运行一个方法?
所以我一直在尝试在我的主要活动中注册我的广播接收器,如上面的答案中所述。
但是我无法让它与警报管理器一起使用,我不确定我应该如何将警报意图链接到广播接收器。谁能指出我在活动中动态注册警报管理器广播接收器的示例?或者解释一下我会怎么做?
android - 首次运行 Android 应用程序时运行代码
我有一个新的地震通知 android 应用程序,它是它的初始版本。我目前有一个问题。我的应用程序有一个在后台运行的服务,它会安排自己每隔 X 周期运行一次。要安排自己,它需要至少运行一次。目前,当您启动手机时会发生这种情况。显然,一旦他安装了应用程序,我不希望用户重新启动他的手机。
此外,我不希望我的应用程序 UI 每次运行时都调用它。因为那显然会搞砸用户的日程安排。相反,我需要知道,当我的 UI 应用程序第一次在手机上运行时,它应该能够运行该服务,以便它可以自行安排并在未来继续按预期运行。
我可以解决的另一种方法是,如果我知道唤醒服务的现有警报列表,那么我就会知道应用程序是否已经在运行。
如果您想查看应用程序源代码或运行二进制文件;请看下面的github url
我希望我的意图很清楚。只是为了提供一些关于应用程序的背景;这是一个安卓手机的通知应用程序,它会在地震发生时生成通知,并在地图上显示受灾区域,并具有附加功能。它有一个 UI 应用程序,显示过去的地震列表。以及一项监视新服务的服务。
提前致谢。