用于每5分钟调用一次web服务的Android后台服务

时间:2015-07-29 08:52:24

标签: android service

我需要为我的Android应用程序提供后台服务,每5分钟调用一次web服务并将接收到的数据存储在数据库中。 Web服务已经完全正常运行,每5分钟就有新数据可用。此外,我如何使这项服务在精确的时间制作网络电话,我需要它在特定的几分钟和几秒钟内拨打电话。

例如,它必须在12:05:05然后在12:10:05进行调用,然后在12:15:05进行调用,依此类推。这样做的原因是因为webservice在精确的时间有新数据,我想尽快得到它。什么可能是这个问题的最佳解决方案?

3 个答案:

答案 0 :(得分:0)

您可以从here了解服务的基础知识。然后从here了解REST网络服务。

还可以从here了解Android中的数据库。

答案 1 :(得分:0)

您可以使用AlarmManager启动调用Web服务的IntentService。

Here是对这种技术的一个很好的解释。

答案 2 :(得分:0)

你必须每隔5分钟使用以下代码调用方法。

// some time when u want to run
Date when = new Date(System.currentTimeMillis());    

try{
   Intent someIntent = new Intent(someContext,MyReceiver.class); // intent to be launched

   // note this could be getActivity if you want to launch an activity
   PendingIntent pendingIntent = PendingIntent.getBroadcast(
        context, 
        0, // id, optional
        someIntent, // intent to launch
        PendingIntent.FLAG_CANCEL_CURRENT); // PendintIntent flag

   AlarmManager alarms = (AlarmManager) context.getSystemService(
        Context.ALARM_SERVICE);

   alarms.setRepeating(AlarmManager.RTC_WAKEUP,
        when.getTime(),
        AlarmManager.INTERVAL_FIFTEEN_MINUTES,
        pendingIntent); 

}catch(Exception e){
   e.printStackTrace();
}