0

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

我在 android 编码方面没有很多经验,我在问我应该如何正确地做到这一点并使用最佳编码实践?

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

4

2 回答 2

0

使用类 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);
 }
于 2017-01-17T00:32:10.840 回答
0

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

private class GetContent extends AsyncTask<String,Void,String> // Assume class name
extras = extras.getString("json");
GetContent().execute(extras); 

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

于 2017-01-17T00:19:45.793 回答