在每个月的第一天运行一个功能

时间:2014-05-28 14:26:41

标签: android alarm

我想在每个月的第一天在固定时间(比如早上8点)从我的Android应用程序运行一个函数。该功能将根据用户的偏好提供通知或开始通过互联网下载文件(两者都已经处理)或什么也不做。

我尝试将BroadcastReceiver与动作android.intent.action.DATE_CHANGED一起使用,但我读到只有当用户手动更改日期时它才会被触发(尽管它曾经工作过前2-3次我尝试然后停止工作)。我认为AlarmManager能够做我需要做的事情,但却无法弄清楚如何实现它。

无论我的应用程序是否处于活动/运行状态,都应该运行。这样做的最佳方式是什么?任何支持代码将不胜感激。

2 个答案:

答案 0 :(得分:0)

启动时启动服务。在服务中,您可以在另一个线程中检查日期。

答案 1 :(得分:0)

使用闹钟

alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis()/*now*/, TIME_REPEATING, pendingIntent);

TIME_REPEATING将是您对该月第一天的计算,以及pendingIntent您的服务来运行任务。

独特的努力工作将知道需要多少时间才能传递到下个月的第一天。但是计算它是可能的,也是非常可靠的。