android日历setInexactRepeating如何工作?

时间:2013-04-08 06:08:31

标签: android calendar alarmmanager

我正在开发小型Android应用程序。我想在几分钟后在我的应用程序中做一些事情。这些分钟不是静态的,这些是动态的。 所以我正在使用android日历setInexactRepeating。 我的代码看起来像这样

 Calendar cal = Calendar.getInstance();
        // Start something after 4 minutes 
        cal.add(Calendar.MINUTE, 4);
        get_alaram_service().setInexactRepeating(AlarmManager.RTC_WAKEUP,
            cal.getTimeInMillis(), 1000*300, get_pendingintent());

所以这将在4分钟后运行setInexactRepeating,它将运行我的待定意图,之后它会在这么长的时间内不断重复这个。 (1000 * 300)。

所以我的问题是在setInexactRepeating中,第二个参数是我想在什么时候启动我的计时器和第三个参数来重复这个东西。现在第二个参数在milisec中传说值。我试图在milisec中传递我自己的分钟值(1000 * 300),然后它无法正常工作。我不知道它是如何正常工作的。当我检查cal.getTimeInMillis()时,它是一个非常大的整数。实际上是什么

我做错了什么需要你的帮助谢谢你......

1 个答案:

答案 0 :(得分:0)

虽然在documentation中没有明确说明,但第二个参数(triggerAtMillis)是自Epoch以来的毫秒时间。这是Calendar.getInstance()返回的内容。调用此方法将返回当前时间。这是一个很大的数字,因为它实际上是1970年1月1日之后的毫秒数。然后,您需要向其添加内容(例如4分钟)以定义AlarmManager何时首次触发。