我应该如何在android中运行定期任务

我应该如何在android中运行定期任务,android,android-service,alarmmanager,periodic-task,Android,Android Service,Alarmmanager,Periodic Task,我正在编写一个应用程序,它需要在后台定期(大约15分钟)从服务器下载JSON数据,并用通知通知用户 我对android编码没有太多经验,我在问我应该如何正确地使用最佳编码实践 我不需要太多的精确性,具有不精确重复的AlarmManager应该可以完美地工作。我知道如何使用BroadcastReceiver接收引导并启动服务。但我不知道如何设置AlarmManager以在服务中运行特定操作,以及是否应该这样做?我不想以未提供的方式使用android机制。使用AsyncTask从服务器获取信息。在R

我正在编写一个应用程序,它需要在后台定期(大约15分钟)从服务器下载JSON数据,并用通知通知用户

我对android编码没有太多经验,我在问我应该如何正确地使用最佳编码实践


我不需要太多的精确性,具有不精确重复的AlarmManager应该可以完美地工作。我知道如何使用BroadcastReceiver接收引导并启动服务。但我不知道如何设置AlarmManager以在服务中运行特定操作,以及是否应该这样做?我不想以未提供的方式使用android机制。

使用
AsyncTask
从服务器获取信息。在Receiver类的onReceive方法中创建新的AsyncTask对象并按如下方式执行:

private class GetContent extends AsyncTask<String,Void,String> // Assume class name
extras = extras.getString("json");
GetContent().execute(extras); 
私有类GetContent扩展异步任务//假定类名
extras=extras.getString(“json”);
GetContent().execute(附加);

在AsyncTask
doInBackground
的默认函数中,检索数据并返回
JSON
。在另一个默认函数
onPostExecute
中,创建一个
NotificationCompat.Builder
对象并通知

使用类TimerTask:

private TimerTask timerTask; 
private final long PERIOD_TIME=1000 * 60 * 15; //15min

@Override
public void onCreate() {

Timer timer = new Timer();

timerTask = new TimerTask() {
  @Override
  public void run() {
    //Your request JSON
   }
  };

  timer.scheduleAtFixedRate(timerTask, 0, PERIOD_TIME);
 }

听起来你已经在正确的轨道上了,试试看@hibob谢谢你。这正是我需要的。