网站开发的英文参考文献,网站模板用什么做,上海焱灿网络,wordpress 一页一屏这篇文章使用AlarmManager实现了Android定时后台循环任务。使用场景#xff1a;项目需要app每隔一段时间就去服务端请求一次接口#xff0c;从而更新本地保存的信息。AlarmManager简介AlarmManager是Android中常用的一种系统级别的提示服务#xff0c;在特定的时刻为我们广播…这篇文章使用AlarmManager实现了Android定时后台循环任务。使用场景项目需要app每隔一段时间就去服务端请求一次接口从而更新本地保存的信息。AlarmManager简介AlarmManager是Android中常用的一种系统级别的提示服务在特定的时刻为我们广播一个指定的Intent。简单的说就是我们设定一个时间然后在该时间到来时AlarmManager为我们广播一个我们设定的Intent,通常我们使用 PendingIntent。项目功能简介AlarmService模拟后台任务定时发起广播AlarmReceive启动AlarmService,达到循环启动Service的效果通过Service和Receiver的死循环确保后台任务不被系统杀死。1.AlarmService类/*** 一个定时任务*/public class AlarmService extends Service {/*** 每1分钟更新一次数据*/private static final int ONE_Miniute60*1000;private static final int PENDING_REQUEST0;public AlarmService() {}/*** 调用Service都会执行到该方法*/Overridepublic int onStartCommand(Intent intent, int flags, int startId) {//这里模拟后台操作new Thread(new Runnable() {Overridepublic void run() {Log.e(wj,循环执行了哈哈. System.currentTimeMillis());}}).start();//通过AlarmManager定时启动广播AlarmManager alarmManager (AlarmManager) getSystemService(ALARM_SERVICE);long triggerAtTimeSystemClock.elapsedRealtime()ONE_Miniute;//从开机到现在的毫秒书(手机睡眠(sleep)的时间也包括在内Intent inew Intent(this, AlarmReceive.class);PendingIntent pIntentPendingIntent.getBroadcast(this,PENDING_REQUEST,i,PENDING_REQUEST);alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,triggerAtTime,pIntent);return super.onStartCommand(intent, flags, startId);}Overridepublic IBinder onBind(Intent intent) {// TODO: Return the communication channel to the service.throw new UnsupportedOperationException(Not yet implemented);}}2 AlarmReceive类public class AlarmReceive extends BroadcastReceiver{Overridepublic void onReceive(Context context, Intent intent) {//循环启动ServiceIntent i  new Intent(context, AlarmService.class);context.startService(i);}}3 启动Servicepublic void startService(View view){Intent intentnew Intent(this, AlarmService.class);startService(intent);}别忘了AndroidMainfest中注册广播和服务android:name.service.AlarmServiceandroid:enabledtrueandroid:exportedtrue/以上就是本文的全部内容希望对大家的学习有所帮助也希望大家多多支持找一找教程网。