本次学习将apidemo中得两个demo:AlarmController and Alarm Service合并到一起学习
AlarmController主要实现单次alarm事件和循环alarm事件
Alarm Service 主要实现利用循环alarm事件启动service(不介绍service,后续到相关demo再深入学习)
1、AlarmController主要是利用PendingIntent 描述将要执行的Intent;PendingIntent 没有提供构造函数,需要通过static 函数getActivity(Context, int,Intent, int), getBroadcast(Context, int, Intent, int), getService(Context, int, Intent, int) 来或得想要执行的Activity,Broadcast,Service 描述。
本次demo描述了一个broadcast:
Intent intent = new Intent(AlarmControllerActivity.this, OneShotAlarm.class);
PendingIntent sender = PendingIntent.getBroadcast(AlarmControllerActivity.this, 0, intent, 0);
然后执行
// Schedule the alarm!
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender);
其中 OneShotAlarm 被定义为一个接收者。
<receiver android:name=".app.alarm.OneShotAlarm" android:process=":remote"/>
2、同理重复的alarm事件实现 只是调用的AlarmManager的方法不同:
// Schedule the alarm!
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime,10 * 1000, sender);
3、终止alarm事件 使用AlarmManager.cancel(sender)
4、最后来说一下利用alarm事件启动service,我们利用PendingIntent描述一个想要执行的service,然后通过alarm循环间隔启动该service
/ /Create an IntentSender that will launch our service, to be scheduled
// with the alarm manager.
mAlarmSender = PendingIntent.getService(AlarmService.this,0, new Intent(AlarmService.this, AlarmService_Service.class), 0);
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, 10*1000, mAlarmSender);
//stop
am.cancle(mAlarmSender);
service的内容先不讨论,效果图:
- 大小: 50.6 KB
- 大小: 45.2 KB
分享到:
相关推荐
springboot获取根目录及资源路径及解决jar发布时的出现D:/export-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/static,采用该工具类可在发布成jar时访问到资源文件路径地址
在"AlarmManager-master_APP_DEMO_alarm_android_unity_"这个项目中,开发者提供了一个完美的`AlarmManager`实现示例,适用于各种设备。这个代码库可能包含一个完整的Android应用,演示了如何有效利用`AlarmManager`...
##### (19) App->Alarm->AlarmController - **目的**:了解如何使用AlarmManager设置定时任务。 - **主要内容**: - 使用AlarmManager设置一次性或重复性的定时任务。 - 实现定时任务的取消操作。 ##### (20) App...
### Android API Demo 知识点概述 #### 一、概览 本文档旨在全面解析 Android API Demo 中的各种案例,通过具体实例深入理解 Android 开发中的关键技术和应用实践。该文档覆盖了从简单的用户界面设计到复杂的后台...
#### 2.19 App->Alarm->AlarmController 这部分内容介绍了如何使用AlarmManager来设置定时任务。 #### 2.20 App->Alarm->AlarmService 进一步讨论了如何利用服务来实现定时任务的功能。 #### 2.21 App->Device...
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); alarmManager.set(AlarmManager.RTC, System.currentTimeMillis() + 1000, pendingIntent); // 延迟1秒后重启 ``` ...
在不同的Android版本中,`AlarmManager` 的行为可能会有所不同,尤其是在Android 6.0(API级别23)之后引入的Doze模式和App Standby模式,这可能导致定时任务的执行不准确。因此,理解和正确使用`AlarmManager` 是...
- AlarmManager是Android系统服务,位于`android.app.AlarmManager`包下,它允许开发者设定在未来某个时间或间隔时间内触发事件。 - 提供了几种触发模式:ELAPSED_REALTIME、ELAPSED_REALTIME_WAKEUP、RTC、RTC_...
(tested with Mingw gcc 4.5.1 and Microsoft Visual Studio Express 2010) - Added ability to configure CPUID stepping through .bochsrc. The default stepping value is 3. - Added ability to disable ...
总的来说,这个示例应用为开发者提供了在Android App中添加日历提醒的实战指导,包括权限管理、日历API的使用以及事件创建的完整流程。对于那些希望在自己的应用中集成类似功能的开发者来说,这是一个非常有价值的...
这个demo展示了如何通过语音设置APP里面闹钟和计时器,通过语音实现某个APP的内容搜索或者其他功能操作和这个demo类似,有需要的伙伴可以参考一下代码。这是作者本人通过学习官方文档和自己摸索出来的,如果有哪里...
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), 30 * 1000, ...
CPUInfo.zip This code will quickly tell you a lot of your system information like computer name, IP address, OS, Service Pack, Processor Vendor, Processor Type, Processor Speed (Raw and Normal), ...
在安卓平台上,调用系统闹钟以及获取所有软件信息是两个重要的功能,它们涉及到安卓系统的API交互和应用程序管理。下面将详细阐述这两个知识点。 一、安卓调用系统闹钟 在安卓系统中,我们可以使用AlarmManager类...
在Android开发过程中,为了更好地理解和使用Android SDK中的各种API,开发者通常会参考API Demo示例工程。这个示例工程提供了丰富的实例,详细展示了Android操作系统API的功能。本文将详细介绍如何创建和利用Android...
5. `app`目录:包含了应用的主要源代码和资源文件,如Activity、Service、布局文件等。 总的来说,ScheduleAalarmDemoApk项目提供了一个实用的示例,演示了如何在Android应用中实现时间选择、精准定时和通知提醒...
6 , chunks.zip This will open a file and read it in "Chunks" of a selected file.<END><br>7 , logging.zip This is a bas that will log installation procedures so the file can be removed later....
HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载Applet的网页文件 第2章 示例描述:本章介绍开发Java的基础语法知识。 ...