android – AlarmManager – 如何在每小时的顶部重复闹钟?

前端之家收集整理的这篇文章主要介绍了android – AlarmManager – 如何在每小时的顶部重复闹钟?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想要一个事件每小时(5点,6点,7点,等等)开火.
我尝试用一​​个持久的后台服务一个线程,但它不是正确的解决方案,因为:

>电池消耗
>服务终止,由于android内存管理

所以我正在使用AlarmManager.如果我在X秒内设置了一个闹钟(使用“set”方法)起作用.
但是,如何在每个小时的顶部重复一次事件(使用“setRepeating”方法),直到闹钟被取消为止?

谢谢!

解决方法

设置闹钟时,您有两次:第一个触发时间和下一个触发间隔.

然后,您必须计算下一个小时的剩余毫秒数,然后为重复间隔设置一个小时.

// We want the alarm to go off 30 seconds from now.
long firstTime = SystemClock.elapsedRealtime();
firstTime += remainingMilisecondsToTopHour;
long a=c.getTimeInMillis();

// Schedule the alarm!
AlarmManager am = (AlarmManager)ctx.getSystemService(Context.ALARM_SERVICE);
am.setRepeating(AlarmManager.ELAPSED_REALTIME,c.getTimeInMillis(),1*60*60*1000,sender);

猜你在找的Android相关文章