栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

一段时间后反复运行方法的服务

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一段时间后反复运行方法的服务

创建一个广播接收器,在接收到来自

AlarmManager
以下站点的广播后,它将启动您的服务:

public class SyncAlarm extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent data) {    // set alarm to start service    Calendar calendar = new GregorianCalendar();    calendar.setTimeInMillis(System.currentTimeMillis());    Calendar cal = new GregorianCalendar();    cal.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR));    cal.set(Calendar.HOUR_OF_DAY,  calendar.get(Calendar.HOUR_OF_DAY));    // start service after an hour    cal.set(Calendar.MINUTE, calendar.get(Calendar.MINUTE) + 60);    cal.set(Calendar.SECOND, calendar.get(Calendar.SECOND));    cal.set(Calendar.MILLISECOND, calendar.get(Calendar.MILLISECOND));    cal.set(Calendar.DATE, calendar.get(Calendar.DATE));    cal.set(Calendar.MONTH, calendar.get(Calendar.MONTH));    // set alarm to start service again after receiving broadcast    AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);    Intent intent = new Intent(context, SyncAlarm.class);    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_ONE_SHOT);    am.cancel(pendingIntent);    am.set(AlarmManager.RTC, cal.getTimeInMillis(), pendingIntent);    intent = new Intent(context, Reminder.class);    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    context.startService(intent);    }}

当您启动应用程序时,第一次启动广播接收器:

    AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);    Intent intent = new Intent(context, SyncAlarm.class);    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_ONE_SHOT);    am.cancel(pendingIntent);    am.set(AlarmManager.RTC, System.currentTimeMillis(), pendingIntent);

还将其添加到清单文件中:

<receiver android:name=".SyncAlarm" ></receiver>

如果您希望在资源可用时立即由Android系统启动服务,而不是接收AlarmManager的广播,则也应该对此START_STICKY有所了解。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/497047.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号