`
007007jing
  • 浏览: 42742 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

android2.3 api demo 学习系列(17)--App/Alarm/AlarmController and Alarm Service

阅读更多

本次学习将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
分享到:
评论

相关推荐

    解决jar发布时的出现D:/export-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/static

    springboot获取根目录及资源路径及解决jar发布时的出现D:/export-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/static,采用该工具类可在发布成jar时访问到资源文件路径地址

    AlarmManager-master_APP_DEMO_alarm_android_unity_

    在"AlarmManager-master_APP_DEMO_alarm_android_unity_"这个项目中,开发者提供了一个完美的`AlarmManager`实现示例,适用于各种设备。这个代码库可能包含一个完整的Android应用,演示了如何有效利用`AlarmManager`...

    android api demo讲解

    ##### (19) App-&gt;Alarm-&gt;AlarmController - **目的**:了解如何使用AlarmManager设置定时任务。 - **主要内容**: - 使用AlarmManager设置一次性或重复性的定时任务。 - 实现定时任务的取消操作。 ##### (20) App...

    Android_api_demo

    ### Android API Demo 知识点概述 #### 一、概览 本文档旨在全面解析 Android API Demo 中的各种案例,通过具体实例深入理解 Android 开发中的关键技术和应用实践。该文档覆盖了从简单的用户界面设计到复杂的后台...

    android API-DEMOS中文解析文档

    #### 2.19 App-&gt;Alarm-&gt;AlarmController 这部分内容介绍了如何使用AlarmManager来设置定时任务。 #### 2.20 App-&gt;Alarm-&gt;AlarmService 进一步讨论了如何利用服务来实现定时任务的功能。 #### 2.21 App-&gt;Device...

    android demo,异常捕获或自动重启app的源代码实现。

    AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); alarmManager.set(AlarmManager.RTC, System.currentTimeMillis() + 1000, pendingIntent); // 延迟1秒后重启 ``` ...

    Android AlarmManager Demo

    在不同的Android版本中,`AlarmManager` 的行为可能会有所不同,尤其是在Android 6.0(API级别23)之后引入的Doze模式和App Standby模式,这可能导致定时任务的执行不准确。因此,理解和正确使用`AlarmManager` 是...

    安卓开发 整点报时 闹钟原理 AlarmManager service

    - AlarmManager是Android系统服务,位于`android.app.AlarmManager`包下,它允许开发者设定在未来某个时间或间隔时间内触发事件。 - 提供了几种触发模式:ELAPSED_REALTIME、ELAPSED_REALTIME_WAKEUP、RTC、RTC_...

    Bochs - The cross platform IA-32 (x86) emulator

    (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 ...

    AddCalendarRemindDemo.rar

    总的来说,这个示例应用为开发者提供了在Android App中添加日历提醒的实战指导,包括权限管理、日历API的使用以及事件创建的完整流程。对于那些希望在自己的应用中集成类似功能的开发者来说,这是一个非常有价值的...

    通过谷歌语音Google Voice Action进行设置应用APP内的闹钟Alarm和计时器Timer的操作

    这个demo展示了如何通过语音设置APP里面闹钟和计时器,通过语音实现某个APP的内容搜索或者其他功能操作和这个demo类似,有需要的伙伴可以参考一下代码。这是作者本人通过学习官方文档和自己摸索出来的,如果有哪里...

    widget的使用详解Demo

    AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), 30 * 1000, ...

    VB编程资源大全(英文源码 API)

    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 ApiDemo示例工程的创建

    在Android开发过程中,为了更好地理解和使用Android SDK中的各种API,开发者通常会参考API Demo示例工程。这个示例工程提供了丰富的实例,详细展示了Android操作系统API的功能。本文将详细介绍如何创建和利用Android...

    ScheduleAalarmDemoApk.rar

    5. `app`目录:包含了应用的主要源代码和资源文件,如Activity、Service、布局文件等。 总的来说,ScheduleAalarmDemoApk项目提供了一个实用的示例,演示了如何在Android应用中实现时间选择、精准定时和通知提醒...

    VB编程资源大全(英文源码 其它)

    6 , chunks.zip This will open a file and read it in "Chunks" of a selected file.&lt;END&gt;&lt;br&gt;7 , logging.zip This is a bas that will log installation procedures so the file can be removed later....

    Java开发技术大全(500个源代码).

    HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载Applet的网页文件 第2章 示例描述:本章介绍开发Java的基础语法知识。 ...

Global site tag (gtag.js) - Google Analytics