Android – 如何在指定的时间在后台下载数据

对于没有任何代码发布,我提前抱歉,主要是因为我不能为我的生活找出我需要做什么,我需要做什么。

基本上,在一天中的特定时间间隔(下午5点),我希望我的应用程序从我的服务器下载一些数据,并将其存储在设备上。 这样可以减less每次运行应用程序时下载数据时服务器上的负载,并减less用户的加载时间,以便在他们使用应用程序时,最新的数据已经在他们的设备上。

我完全不知道如何做到这一点。 我知道如何下载数据就好,但现在如何在后台下载像我正在计划。 这甚至有可能吗?

我不是要求任何人为我做这件事,但请有人指出我正确的方向。

Solutions Collecting From Web of "Android – 如何在指定的时间在后台下载数据"

使用AlarmManager

该课程提供对系统警报服务的访问。 这些允许您安排您的应用程序在未来的某个时间点运行。 当警报closures时,已经注册的Intent被系统广播,如果目标应用程序尚未运行,则会自动启动。 注册的警报在设备处于睡眠状态时保留(如果在此期间closures设备,可以select将设备唤醒),但是如果closures并重新引导,设备将被清除。

用它来启动一个服务

服务是一个应用程序组件,代表应用程序希望在不与用户交互的情况下执行长时间运行的操作,或者提供其他应用程序使用的function。

API演示包括一个警报服务示例(在“应用程序”部分),其中:

演示如何安排导致服务启动的警报。 当您想要安排发起长时间运行的警报(例如检索最近的电子邮件)时,这非常有用。

具体来说,请参阅AlarmService.java以获取使用AlarmManager调度您的服务稍后唤醒的示例,并参阅AlarmService_Service.java以获取有关如何响应该警报的示例。 API Demo的AndroidManifest.xml包含相关的服务和活动定义:

  <service android:name=".app.AlarmService_Service" android:process=":remote" /> <activity android:name=".app.AlarmService" android:label="@string/activity_alarm_service"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.SAMPLE_CODE" /> </intent-filter> </activity> 

写一个服务 。

使用AlarmManager 。

有人可以请指点我正确的方向。

AlarmManager , Service , AsyncTask , BroadcastReceiver

  <receiver android:name=".receiver.BootReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver>