0

我正在开发小型 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 中,第二个参数是我想在什么时候启动我的计时器,第三个参数是重复这个事情。现在第二个参数以毫秒为单位表示值。我试图以毫秒为单位传递我自己的分钟值,例如(1000 * 300),然后它无法正常工作。我不知道它如何正常工作。当我检查 cal.getTimeInMillis() 时,它是一个非常大的整数。那实际上是什么。

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

4

1 回答 1

0

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

于 2013-11-13T10:50:54.743 回答