<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
H1 { margin-bottom: 0.08in }
H1.western { font-family: "Times New Roman", serif }
H1.cjk { font-family: "DejaVu Sans" }
H1.ctl { font-family: "Lohit Hindi" }
TD P { margin-bottom: 0in }
H2 { margin-bottom: 0.08in }
H2.ctl { font-family: "Lohit Hindi" }
TH P { margin-bottom: 0in }
A:link { so-language: zxx }
CODE.cjk { font-family: "DejaVu Sans", monospace }
-->
public
class
AlarmManager
extends Object
java.lang.Object
|
↳
|
android.app.AlarmManager
|
类概括
Class
Overview
本类提供了许可连接系统警报服务。这里允许你预定你的应用程序在未来的某个点运行。当警报响起,已经注册到系统监听的Intent自动启动目标应用程序如果这个应用没有准备运行。在设备睡眠时已经注册的警报被保存(如果在此期间响起则能够执行唤醒设备操作),但是如果设备关闭或重启则警报将被清除。
This
class provides access to the system alarm services. These allow you
to schedule your application to be run at some point in the future.
When an alarm goes off, the Intent
that
had been registered for it is broadcast by the system, automatically
starting the target application if it is not already running.
Registered alarms are retained while the device is asleep (and can
optionally wake the device up if they go off during that time), but
will be cleared if it is turned off and rebooted.
这个警报管理只要在警报接收者的onReceive()方法中执行就可获得一个CPU唤醒锁。这将保证电话直到你结束掌握的这个广播不会休眠。一旦OnReceive()返回,这个警报管理就释放这个唤醒锁。这意味着电话在你的onReceive()方法完成后就会在一些情况下休眠。如果你的警报监听者调用Context.startService(),电话在请求服务被执行前将会休眠的情况是可能发生的。为了预防这中情况发生,你的BroadcastReceiver和Service将需要执行一个分开的唤醒锁策略以确保电话在服务成为可用前继续运行。
The
Alarm Manager holds a CPU wake lock as long as the alarm receiver's
onReceive() method is executing. This guarantees that the phone will
not sleep until you have finished handling the broadcast. Once
onReceive() returns, the Alarm Manager releases this wake lock. This
means that the phone will in some cases sleep as soon as your
onReceive() method completes. If your alarm receiver
called Context.startService()
,
it is possible that the phone will sleep before the requested
service is launched. To prevent this, your BroadcastReceiver and
Service will need to implement a separate wake lock policy to ensure
that the phone continues running until the service becomes
available.
注意:这个警报管理是预期这种情况当你要运行你的应用程序代码在一个特殊的时候,即使你的应用程序不是当前运行的。进行常规定时操作(响铃,超时设定,等)这是更简单和更多更高效的用法。
Note:
The Alarm Manager is intended for cases where you want to have your
application code run at a specific time, even if your application is
not currently running. For normal timing operations (ticks,
timeouts, etc) it is easier and much more efficient to use Handler
.
你不能直接实例这个类;要通过Context.getSystemService(Context.ALARM_SERVICE)替换,取回他
You
do not instantiate this class directly; instead, retrieve it
through Context.getSystemService(Context.ALARM_SERVICE)
.
Summary
Constants
int
|
ELAPSED_REALTIME
|
警报时在SystemClock.elapsedRealtime()(时间来自boot,包括休眠)
Alarm time
in SystemClock.elapsedRealtime() (time
since boot, including sleep).
|
|
int
|
ELAPSED_REALTIME_WAKEUP
|
警报时在SystemClock.elapsedRealtime()(时间来自boot,包括休眠),当警报发生将唤醒设备。
Alarm time
in SystemClock.elapsedRealtime() (time
since boot, including sleep), which will wake up the device when
it goes off.
|
|
long
|
INTERVAL_DAY
|
|
|
long
|
INTERVAL_FIFTEEN_MINUTES
|
通过setInexactRepeating(int,
long, long, PendingIntent)有效的不精确的重复间隔被认可
Available
inexact recurrence intervals recognized
by setInexactRepeating(int,
long, long, PendingIntent)
|
|
long
|
INTERVAL_HALF_DAY
|
|
|
long
|
INTERVAL_HALF_HOUR
|
|
|
long
|
INTERVAL_HOUR
|
|
|
int
|
RTC
|
警报时在System.currentTimeMillis()(在UTC隔开时钟)
Alarm time
in System.currentTimeMillis() (wall
clock time in UTC).
|
|
int
|
RTC_WAKEUP
|
警报时在System.currentTimeMillis()(在UTC隔开时钟),当警报发生将唤醒设备。
Alarm time
in System.currentTimeMillis() (wall
clock time in UTC), which will wake up the device when it goes
off.
|
|
Public Methods
void
|
cancel(PendingIntent operation)
移除任何匹配Intent的警报。
Remove any
alarms with a matching Intent .
|
|
void
|
set(int
type, long triggerAtTime, PendingIntent operation)
预定一个警报。
Schedule an
alarm.
|
|
void
|
setInexactRepeating(int
type, long triggerAtTime, long interval, PendingIntent operation)
设定一个重复警报带有不精确的触发时间要件;例如,一个警报是每小时重复,但不一定在每个小时的开始重复。
Schedule a
repeating alarm that has inexact trigger time requirements; for
example, an alarm that repeats every hour, but not necessarily at
the top of every hour.
|
|
void
|
setRepeating(int
type, long triggerAtTime, long interval, PendingIntent operation)
预定一个重复警报。
Schedule a
repeating alarm.
|
|
void
|
setTime(long
millis)
设置系统隔开时间。
Set the system
wall clock time.
|
|
void
|
setTimeZone(String timeZone)
设置系统默认时区。
Set the system
default time zone.
|
|
分享到:
相关推荐
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent); ``` 4. **选择合适的触发类型**:AlarmManager提供了多种触发类型,如`ELAPSED_REALTIME`(基于系统启动时间)、`RTC`...
在Xamarin.Android中,你需要引入`Android.App.AlarmManager`和`Android.Content.Intent`等命名空间。`AlarmManager`对象可以从系统的`Context`获取,例如`GetSystemService(Context.AlarmService)`。然后,你可以...
`AlarmManager`位于`android.app`包下,它提供了多种调度策略,例如精确到毫秒的计时器,以及根据电池状态和系统负载进行优化的定时器。这些特性使得`AlarmManager`成为Android中处理定时任务的首选工具。 ### 二、...
`AlarmManager`是Android SDK中的一个类,位于`android.app`包下。它的主要功能是为应用提供定时触发事件的能力,支持一次性或周期性的定时任务。通过设置不同的策略,`AlarmManager`可以精确或粗略地控制触发时间,...
It will help you more quickly climb the Android learning curve, so you can create the “killer app” you’ve dreamed of…or perhaps just a quick-and-dirty application for you and your friends. ...
简单说一下这次demo内容,首先做...import android.app.AlarmManager; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.app.TimePickerD
在不同的Android版本中,`AlarmManager` 的行为可能会有所不同,尤其是在Android 6.0(API级别23)之后引入的Doze模式和App Standby模式,这可能导致定时任务的执行不准确。因此,理解和正确使用`AlarmManager` 是...
am.set(AlarmManager.RTC_WAKEUP, time, pen); // 其他可用的方法还包括: // am.setRepeating(type, triggerAtTime, interval, operation) - 设置重复定时器 // am.cancel(operation) - 取消一个定时器 } } ...
manager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, alarmTime, pendingIntent); } else { manager.set(AlarmManager.RTC_WAKEUP, alarmTime, pendingIntent); } } } ``` 在这个例子中,`...
`AlarmManagerService`对外提供的接口是`IAlarmManager`,这是一个AIDL(Android Interface Definition Language)定义的接口,位于`frameworks\base\core\java\android\app\IAlarmManager.aidl`中。该接口定义了...
定时更新通常通过`AlarmManager`设置,事件驱动更新则是在`onReceive()`中处理特定Intent。 9. **性能优化** - 由于Widget运行在系统进程中,优化Widget的性能至关重要,避免不必要的计算和内存占用。 10. **测试...
它是Android SDK中的一个类,位于`android.app`包下,用于调度定时任务。`AlarmManager`提供了多种调度方法,如`set()`、`setExact()`、`setInexactRepeating()`等,用于设置一次性或周期性的闹钟。 下面是一个简单...
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent); ``` ### 3. 重复闹钟 如果你想让闹钟定期触发,可以使用 `setRepeating()` 方法: ```java alarmManager.setRepeating...
在"AlarmManager-master_APP_DEMO_alarm_android_unity_"这个项目中,开发者提供了一个完美的`AlarmManager`实现示例,适用于各种设备。这个代码库可能包含一个完整的Android应用,演示了如何有效利用`AlarmManager`...
在Android应用开发中,AlarmManager是一个至关重要的组件,它提供了调度任务执行的能力,可以在特定时间或周期性地启动其他组件,如Activity、Service或BroadcastReceiver。这篇内容将深入讲解AlarmManager的用法。 ...
【标题】"android 背单词app源码.zip"揭示了这是一个关于Android平台的应用程序源代码,主要用于帮助用户学习和记忆英语单词。源码通常包括应用程序的所有编程代码、资源文件和构建配置,使得开发者可以理解并修改...
**Android之AppWidget详解** AppWidget是Android操作系统提供的一种组件,允许开发者在用户主屏幕上创建小型应用程序,这些小部件无需用户直接启动应用就能显示和交互。AppWidget为用户提供了一种快速访问应用功能...
本资源提供的"Android 闹钟app 源码"是一个适用于Android 8到11版本的源代码,非常适合学习和实践Android应用开发。以下是基于该源码可能涉及的主要知识点的详细解析: 1. **AlarmManager**: Android中的...
在Android平台上,开发一款记事本应用涉及到许多关键知识点,这款名为"android记事本app源码"的应用程序显然展示了这些技术的运用。下面将详细阐述相关的核心技术和实践要点。 1. **Android SDK**: 任何Android应用...
本篇文章将深入探讨如何在Xamarin.Android中利用AlarmManager组件实现定时呼叫的功能。 首先,我们需要了解`AlarmManager`。它是Android系统中的一个关键组件,用于安排在将来某个特定时间执行一次性或重复性的任务...