AlarmManager 可以設置固定時間,固定周期性的操作
120秒後每60秒調用一次UpdateService:
private void setAlarmTime(){ Slog.i("TEST", "Start self-define alarm"); currentSystemTime = System.currentTimeMillis(); try { nextCheckAlarmTime = Long.parseLong(Settings.System.getString(mSystemContext.getContentResolver(), Settings.System.KEY_NEXT_CHECK_TIME)); }catch (Exception e){ e.printStackTrace(); } manager = (AlarmManager) mSystemContext.getSystemService(ALARM_SERVICE); Intent intent = new Intent(); intent.setComponent(new ComponentName("com.android.settings","com.android.settings.system.UpdateService")); pi = PendingIntent.getService(mSystemContext,0,intent,0); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.CUPCAKE) { if (nextCheckAlarmTime - currentSystemTime > 0) { manager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, 120 * 1000 + SystemClock.elapsedRealtime(), 600 * 1000, pi); } else { Intent intentSerive = new Intent(); intentSerive.setComponent(new ComponentName("com.android.settings", "com.android.settings.system.UpdateService")); mSystemContext.startService(intentSerive); setAlarmChange(); } Slog.i("TEST", "End self-define alarm"); } }
每天(或是周期性)固定的時間進行調用UpdateService的操作:
private void setAlarmChange(){ Slog.i(TAG, "Start self-define alarm"); manager = (AlarmManager) mSystemContext.getSystemService(ALARM_SERVICE); Intent intent = new Intent(); intent.setComponent(new ComponentName("com.android.settings","com.android.settings.system.UpdateService")); pi = PendingIntent.getService(mSystemContext,0,intent,0); timedate = Settings.System.getString(mSystemContext.getContentResolver(),Settings.System.KEY_CHECK_TIME_VALUE); dayset = Integer.parseInt(Settings.System.getString(mSystemContext.getContentResolver(), Settings.System.KEY_UPDATE_INTERVAL))+1; temptimedate = timedate.split(":"); hourset = temptimedate[0]; mintuesset = temptimedate[1]; Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(hourset)); calendar.set(Calendar.MINUTE, Integer.parseInt(mintuesset)); calendar.add(Calendar.DATE,dayset); nextCheckAlarmTime = calendar.getTimeInMillis()+dayset*3600*24*1000; Settings.System.putString(mSystemContext.getContentResolver(),Settings.System.KEY_NEXT_CHECK_TIME,String.valueOf(nextCheckAlarmTime)); // setRepeating() lets you specify a precise custom interval--in this case, manager.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), dayset*3600*24*1000, pi); Slog.i(TAG, "Start self-define alarm"); }
記得開啓Alarmagr前先清除之前的對象
private void cancelAlarmTime(){ if(manager!=null) manager.cancel(pi); }
相关推荐
在Android开发中,`AlarmManager`是系统服务之一,它允许应用在指定的时间或周期性地执行任务。本文将深入探讨如何使用`AlarmManager`来实现多个定时且重复的提醒功能。 首先,我们需要理解`AlarmManager`的工作...
在Android开发中,`AlarmManager` 是一个非常重要的系统服务,用于安排应用程序在特定时间执行任务,例如定时提醒、后台同步等。在这个场景中,需求是实现一个功能,让用户能够根据服务器设定的时间段(比如周一、...
在提供的`MyAlarmManager`文件中,可能包含了创建和管理`AlarmManager`实例的类,以及实现闹钟功能的相关代码。具体实现细节需要查看源代码来了解。 通过上述步骤和注意事项,你可以利用`AlarmManager`构建出功能...
在Android开发中,`AlarmManager` 是一个至关重要的服务组件,它允许开发者安排应用程序在未来某个时间点执行特定的任务。这个组件常用于实现定时任务,如后台数据同步、定期提醒、闹钟等。在不同的Android版本中,`...
`AlarmManagerService`是Android系统中的核心服务之一,它负责处理所有与时间相关的任务。ALMS的核心职责包括但不限于: - **管理RTC闹钟**:RTC(Real Time Clock)闹钟是一种基于硬件的时间闹钟,即使设备处于...
在Android系统中,`AlarmManager`是一个至关重要的组件,它允许开发者安排应用在未来的特定时间执行某些任务。这个服务能够确保即使应用没有运行,也可以在指定时间被唤醒以执行预定的任务,比如更新天气信息、发送...
在Android开发中,`AlarmManager`是系统服务之一,它允许应用程序安排在未来某个时间点或周期性地执行任务。这通常用于实现定时提醒、后台同步或其他时间敏感的操作。本篇文章将详细讲解如何在Android中使用`...
本篇文章将详细探讨`AlarmManager`的使用方法,包括设置一次性闹钟、周期性闹钟以及相关的最佳实践。 ### 一、AlarmManager介绍 `AlarmManager`位于`android.app`包下,它提供了多种调度策略,例如精确到毫秒的...
AlarmManager提供了访问系统闹钟的服务。它允许你安排你的应用在未来某个时间点运行。这就相当于定时任务。对于少于60s的定时任务,不推荐使用AlarmManager,可以使用更高效的的Handler来处理频发的任务。
在Android开发中,后台服务和定时任务是两个重要的概念,特别是在构建需要持续运行或定期执行功能的应用时。本文将深入探讨如何使用`AlarmManager`和`Service`来实现后台的定时任务。 首先,`Service`是Android系统...
【AlarmManager】是Android系统中的一个关键组件,用于在指定的时间或者间隔执行特定的任务,它在后台服务中工作,能够确保即使应用不运行时也能触发预定的事件。这个功能对于实现定时提醒、自动同步数据或者执行...
在Android开发中,`AlarmManager` 是一个非常重要的系统服务,用于实现应用程序的定时任务,如定期发送数据、唤醒设备、启动服务等。本篇文章将详细介绍如何使用`AlarmManager`来启动广播`BroadcastReceiver`、服务`...
总之,`AlarmManager`是Android中不可或缺的一个组件,它使得开发者能够在后台高效地管理时间驱动的任务,提高了应用的自动化程度。通过深入理解和灵活运用`AlarmManager`,我们可以实现各种复杂的功能,比如定时...
在Android应用开发中,AlarmManager是一个至关重要的组件,它提供了调度任务执行的能力,可以在特定时间或周期性地启动其他组件,如Activity、Service或BroadcastReceiver。这篇内容将深入讲解AlarmManager的用法。 ...
在Android开发中,`Service`和`AlarmManager`是两个重要的组件,它们分别用于后台服务的执行和系统级定时任务的设置。当我们需要在应用程序中实现一个即使在应用关闭或者设备重启后仍然能够按预定时间运行的任务时,...
`AlarmManager`是Android系统服务,它允许应用程序安排将来在特定时间执行的操作。这通常用于执行周期性的后台任务,如发送推送通知、更新数据或执行维护操作。`AlarmManager`提供了多种触发类型,包括精确的即时...
在Android开发中,`AlarmManager`是一个至关重要的组件,它允许开发者安排在未来某个时间或周期性执行的任务。这个"小闹钟"程序是基于`AlarmManager`构建的,非常适合初学者学习如何在Android环境中实现定时任务。...
"AlarmManager service"是Android系统提供的一种关键组件,它允许应用程序安排在未来的某个时间点执行特定的任务,例如发送推送通知、同步数据或者执行后台服务。这个服务在后台工作,即使应用本身并未运行,也能...
在Android开发中,`AlarmManager`是系统服务之一,它允许应用程序安排在未来的某个时间执行一次性或周期性的操作。这个服务对于实现定时任务,比如定时提醒、后台数据同步等场景非常有用。本教程将深入讲解如何使用`...
综上所述,`AlarmManager` 是Android开发中实现定时任务的核心工具,熟练掌握其使用能帮助开发者构建各种功能强大的应用程序,例如闹钟、定时提醒等。通过实践和理解上述知识点,你将能够创建出更加灵活和可靠的定时...