十三年专注于网站建设与互联网应用开发,低调、有情怀的网络应用服务商!
南昌百恒科技微信公众号 扫一扫关注
tel-icon全国服务热线:400-680-9298,0791-88117053
扫一扫关注百恒科技微信公众号

如何使用PendingIntent 管理定时器?

百恒 2017-04-14 16:07:39 3249
       南昌APP开发公司的安卓开发人员都知道,一个PendingIntent只能登记一个定时器。这也是isOn值为false时,setServiceAlarm (Context, boolean)方法的工作原理:首先调用AlarmManager.cancel(PendingIntent)方法撤销PendingIntent的定时器,然后撤销PendingIntent。
       既然撤销定时器也随即撤消了PendingIntent,可通过检查PendingIntent是否存在来确认定时器激活与否。具体代码实现时, 传入PendingIntent.FLAG_NO_CREATE 标志给PendingIntent.getService(...)方法即可。该标志表示如果PendingIntent不存在,则返回null,而不是创建它。
       添加一个名为isServiceAlarmOn(Context)的新方法,并传入PendingIntent.FLAG_NO_CREATE标志,以判断定时器的启停状态,如下代码所示:
       添加isServiceAlarmOn()方法(PollService.java)
       public class PollService extends IntentService {
       ...
       public static void setServiceAlarm(Context context, boolean isOn) {
       ...
       }
       public static boolean isServiceAlarmOn(Context context) {
       Intent i = PollService.newIntent(context);
       PendingIntent pi = PendingIntent
       .getService(context, 0, i, PendingIntent.FLAG_NO_CREATE);
       return pi != null;
       }
       ...
       }
       这里的PendingIntent仅用于设置定时器,因此PendingIntent空值表示定时器还未设置。
       以上就是百恒网络今天所要讲的使用PendingIntent 管理定时器的方法,在南昌APP开发中,还会有更多的方法或碰到一些难题,百恒网络拥有专业的安卓开发大师,具备五年以上的开发经验,精通安卓、苹果双端,不管哪种难题都能为您轻松解决,如有需要APP开发服务的朋友,随时欢迎咨询百恒网络,我们专业为您定制开发!
400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号

欢迎您的光顾,我们将竭诚为您服务×

售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售后服务 售后服务
 
备案专线 备案专线
 
售后服务 售后服务
 
×