我需要在设置AlarmManager
的20分钟后触发一个代码块。
有人能给我展示一下如何在ِ安卓系统中使用AlarmManager
的示例代码吗?
我已经玩了几天的代码,它就是不能工作。
发布于 2009-07-04 19:30:03
当涉及到AlarmManager
时,“一些示例代码”并不是那么容易。
下面是显示AlarmManager
设置的代码片段
AlarmManager mgr=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent i=new Intent(context, OnAlarmReceiver.class);
PendingIntent pi=PendingIntent.getBroadcast(context, 0, i, 0);
mgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), PERIOD, pi);
在本例中,我使用的是setRepeating()
。如果你想要一个一次性的警报,你可以直接使用set()
。请确保在set()
的初始参数中使用的相同时基上提供警报开始的时间。在上面的例子中,我使用的是AlarmManager.ELAPSED_REALTIME_WAKEUP
,所以我的时基是SystemClock.elapsedRealtime()
。
展示这项技术的Here is a larger sample project。
发布于 2015-04-15 06:34:37
我想发表评论,但<50个代表,所以这里。友好的提醒,如果你在5.1或更高版本上运行,并且你使用的时间间隔不到一分钟,就会发生这种情况:
Suspiciously short interval 5000 millis; expanding to 60 seconds
参见here。
发布于 2011-11-03 19:39:38
当您想要从Alarmmanager调用服务时,一些示例代码:
PendingIntent pi;
AlarmManager mgr;
mgr = (AlarmManager)ctx.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(DataCollectionActivity.this, HUJIDataCollectionService.class);
pi = PendingIntent.getService(DataCollectionActivity.this, 0, i, 0);
mgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() , 1000, pi);
您不必询问用户权限。
https://stackoverflow.com/questions/1082437
复制相似问题