2015-10-27 3 views
0

Я создаю приложение, которое извлекает данные с заданным интервалом с веб-сайта, и я извлекаю устаревшие данные. В частности, я вытаскиваю очки из игр NFL, но всякий раз, когда меняется оценка, мое приложение чередуется между возвратом старого счета и новым счетом. В конце концов, он стабилизируется и возвращает только новый балл.HTTP-вызов, возвращающий устаревшие данные

Как предотвратить удаление приложения из устаревших данных?

public class MainActivity extends Activity { 

private String webSourceCode; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    new MyAsyncTask().execute(); 

} 

private class MyAsyncTask extends AsyncTask<Void, Void, List<Integer>> { 
    protected List<Integer> doInBackground(Void... params) { 
     StringBuilder sb = new StringBuilder(); 
     try { 
      URL nfl = new URL("http://www.cbssports.com/nfl/scoreboard"); 
      BufferedReader in = new BufferedReader(
        new InputStreamReader(
          nfl.openStream())); 
      String inputLine; 

      while ((inputLine = in.readLine()) != null) { 
       sb.append(inputLine); 
      } 
      in.close(); 
     } 
     catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } 
     catch (IOException e) { 
      e.printStackTrace(); 
     } 
     webSourceCode = sb.toString(); 

     return parseScores(webSourceCode); 
    } 
    protected void onPostExecute(List<Integer> listScores) { 

     updateViews(listScores); 
     //recursion 
     new MyAsyncTask().execute(); 
    } 
} 

} 

ответ

0

GET-вызовы могут быть кэшированы сервером или посредниками. Вы можете передать параметры динамического запроса, чтобы гарантировать, что посредник/сервер не отправит обратно кешированный ответ. Что-то вроде этого будет работать:

URL nfl = new URL("http://www.cbssports.com/nfl/scoreboard?nocache="+new Date().getTime()); 
+0

Спасибо! Я должен попробовать, когда выйдет следующая игра, и я приму свой ответ, если это сработает. – Visualizes