2016-06-29 24 views
0

サーバー上のJSONファイルを更新すると、Androidデバイスは更新されたファイルを取得しませんが、エミュレータは正常に動作しています。コードを介してjsonファイルを更新する方法はありますか、またはサーバーキャッシュ内のファイルを削除する方法はありますか。Androidが更新されたJSONファイルを取得しない

WebサーバーからビデオURLを取得するAsynTask。

private class fetchVideoUrls extends AsyncTask<String, String, List<VideoModel>> { 

     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      dialog.show(); 
     } 

     @Override 
     protected List<VideoModel> doInBackground(String... strings) { 
      HttpURLConnection connection = null; 
      BufferedReader reader = null; 
      try { 
       URL url = new URL(strings[0]); 
       connection = (HttpURLConnection) url.openConnection(); 
       connection.connect(); 
       InputStream stream = connection.getInputStream(); 
       reader = new BufferedReader(new InputStreamReader(stream)); 
       StringBuilder buffer = new StringBuilder(); 
       String line; 
       while ((line = reader.readLine()) != null) { 
        buffer.append(line); 
       } 

       String resultJson = buffer.toString(); 
       JSONObject parentObject = new JSONObject(resultJson); 
       JSONArray parentArray = parentObject.getJSONArray("videos"); 

       List<VideoModel> videoModelList = new ArrayList<>(); 

       Gson gson = new Gson(); 
       for (int i = 0; i < parentArray.length(); i++) { 
        JSONObject finalObject = parentArray.getJSONObject(i); 
        VideoModel videoModel = gson.fromJson(finalObject.toString(), VideoModel.class); 
        videoModelList.add(videoModel); 
       } 
       return videoModelList; 
      } catch (JSONException | IOException e) { 
       e.printStackTrace(); 
      } finally { 
       if (connection != null) { 
        connection.disconnect(); 
       } 
       try { 
        if (reader != null) { 
         reader.close(); 
        } 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 
      return null; 
     } 

     @Override 
     protected void onPostExecute(List<VideoModel> result) { 
      super.onPostExecute(result); 
      dialog.dismiss(); 
      VideoAdapter adapter = new VideoAdapter(getApplicationContext(), R.layout.video_row, result); 
      lvVideos.setAdapter(adapter); 
     } 
    } 
+0

しようとしたしましたか? – Kunu

+0

@Kunuはい、私は、アプリをアンインストールしてデバイスにそのjingファイルの古いバージョンを取得して再インストールした後でも、 –

答えて

1

あなたは方法setUseCachesで、OpenConnectionメソッド前にオフHttpURLConnectionの上セットキャッシュしようとしたしましたか?

方法参照:ここで説明したようにhttp://download.java.net/jdk7/archive/b123/docs/api/java/net/URLConnection.html#setUseCaches(boolean)

このメソッドは、URLConnectionのクラスから継承されます。あなたはあなたのモバイルアプリケーションのキャッシュをクリアした後に、APIを呼び出すhttp://download.java.net/jdk7/archive/b123/docs/api/java/net/HttpURLConnection.html

関連する問題