android 定时拉取数据

根据谷歌api编写

使用定时器启动服务不断拉取数据

当系统重启或者应用被杀死的情况下,Alarm定时任务会被取消

从Android4.4开始,Alarm事件默认采用非精准方式,即定时任务可能会有小范围的提前或延后,当然我们可以强制采用精准方式,而在此之前,Alarm事件都是精准方式

定时器:

PendingIntent operation = PendingIntent.getService(context, -1,
new Intent(context, CoreService.class),
PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
long firstTime = SystemClock.elapsedRealtime();
alarmManager.cancel(operation);


alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
firstTime, 60 * 1000, operation);



服务:

/**
 * 实时下载数据
 * 
 * @author sm
 * 
 */
public class CoreService extends Service {

public CoreService()
{}

@Override
public IBinder onBind(Intent intent) {
return null;
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
new Thread(new Runnable() {

@Override
public void run() {
getAllInfos();
}
}).start();

return Service.START_STICKY;
}


@Override
public void onDestroy() {
super.onDestroy();
}

}

你可能感兴趣的:(android)