Questions tagged «alarmmanager»

提供访问系统警报服务的Android类。

9
警报管理器示例
我想在我的项目中实现计划功能。所以我用Google搜索了一个警报管理器程序,但是找不到任何示例。 有人可以通过基本的警报管理器程序帮助我吗?

10
如何检查AlarmManager是否已经设置了警报?
当我的应用程序启动时,我希望它检查是否已设置并正在运行特定警报(通过AlarmManager注册)。谷歌的结果似乎表明,没有办法做到这一点。这还正确吗?我需要进行此检查,以便在采取任何措施来创建新警报之前为用户提供建议。

9
从Activity外部调用startActivity()?
我正在使用AlarmManager触发广播信号的意图。以下是我的代码: AlarmManager mgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE); Intent i = new Intent(this, Wakeup.class); try { PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, 0); Long elapsed += // sleep time; mgr.set(AlarmManager.RTC_WAKEUP, elapsed, pi); } catch(Exception r) { Log.v(TAG, "RunTimeException: " + r); } 我是从调用此代码的Activity,所以我不知道如何得到以下错误... ERROR/AndroidRuntime(7557): java.lang.RuntimeException: Unable to start receiver com.wcc.Wakeup: android.util.AndroidRuntimeException: Calling …

5
在PendingIntent上使用的“ requestCode”是什么?
背景: 我通过AlarmManager使用PendingIntent发出警报。 问题: 起初,我认为为了取消以前的警报,必须提供在启动警报之前使用的确切requestCode。 但是后来我发现我错了,正如取消API所述: 删除所有具有匹配意图的警报。任何警报,其意图与该警报相匹配(由filterEquals(Intent)定义)的任何类型的警报都将被取消。 查看“ filterEquals ”,文档说: 确定两个意图是否出于意图解析(过滤)的目的相同。也就是说,如果它们的动作,数据,类型,类和类别相同。这不会比较意图中包含的任何其他数据。 所以我不明白“ requestCode”是为了什么... 问题: “ requestCode”是用来做什么的? 如果使用相同的“ requestCode”创建多个警报该怎么办?他们会互相覆盖吗?


5
Android AlarmManager-RTC_WAKEUP与ELAPSED_REALTIME_WAKEUP
有人可以向我解释AlarmManager.RTC_WAKEUP和之间的区别AlarmManager.ELAPSED_REALTIME_WAKEUP吗?我已经阅读了文档,但是仍然不太真正理解使用一个在另一个之上的含义。 示例代码: alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, scheduledAlarmTime, pendingIntent); alarmManager.set(AlarmManager.RTC_WAKEUP, scheduledAlarmTime, pendingIntent); 这两行代码的执行方式有何不同?这两行代码何时才能相对执行? 我感谢您的帮助。

14
AlarmManager在多个设备中不起作用
我的应用程序使用AlarmManager,并且从4年前就开始运行。但是我注意到某些设备开始出现故障。 我非常确定代码是正确的(因为我在装有Doze的设备上使用WakefulBroadcastReceiver和setExactAndAllowWhileIdle),因为它可以在Nexus设备上正常运行,但是在某些制造商的设备(华为,小米等)中却无法使用。 例如,华为设备具有一种可杀死应用程序的电池管理器,当应用程序被终止时,计划的警报将被取消。因此,在华为电池管理器中将应用设置为“受保护”即可解决该问题。 但是最近我注意到它不能在更多设备上使用:小米,三星(也许与新的“智能管理器”有关?)……这种行为似乎正在成为一种标准:杀死后台应用程序。 有人知道吗?有什么方法可以确保触发警报? 编辑:此问题是由不同制造商添加的“节电器”引起的。更多信息在这里:https : //dontkillmyapp.com/

3
如何读取“ adb shell dumpsys警报”输出
我正在努力正确设置警报,并了解取消和重新安排警报的机制。 我发现,有一个adb命令可以检索设备上安排的所有警报,但是我还没有找到说明输出格式的文档。 我确实知道,我在这里要问很多解释,所以如果有人抛出带有“ adb shell dumpsys警报”详细说明的链接,我将非常感激。 因此,这里有一些问题: 待处理警报批次:23 一种。“ 23”是当前处于活动状态的预定警报吗? 批次{4293d3a8 num = 1开始= 1369361结束= 1407261}: RTC#0:警报​​{4293d358 type 1 com.android.chrome} type = 1 whenlapsed = 1369361 when = + 19s304ms window = -1 repeatInterval = 0 count = 0 operation = PendingIntent {429e4500:PendingIntentRecord {429dbbc8 com.android.chrome broadcastIntent}} 一种。什么是“ num = 1”,“ …


6
在所有最新的Android限制之后,如何设置要在确切时间安排的警报?
注意:我尝试了各种关于StackOverflow的解决方案(此处为 example )。请不要在未检查发现的解决方案是否使用我在下面编写的测试中起作用的情况下关闭此功能。 背景 该应用程序有一个要求,即用户将提醒设置为在特定时间进行安排,因此,当该应用程序在此时间触发时,它会在后台执行一些微小的操作(只是一些数据库查询操作),并显示一个简单的通知,告知有关提醒。 过去,我使用简单的代码来设置要在相对特定的时间安排的内容: val alarmManager = context.getSystemService(Context.ALARM_SERVICE) as AlarmManager val pendingIntent = PendingIntent.getBroadcast(context, requestId, Intent(context, AlarmReceiver::class.java), PendingIntent.FLAG_UPDATE_CURRENT) when { VERSION.SDK_INT >= VERSION_CODES.KITKAT -> alarmManager.setExact(AlarmManager.RTC_WAKEUP, timeToTrigger, pendingIntent) else -> alarmManager.set(AlarmManager.RTC_WAKEUP, timeToTrigger, pendingIntent) } class AlarmReceiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { Log.d("AppLog", "AlarmReceiver onReceive") …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.