2017-01-26 44 views
1

我正在開發一個應用程序,每次啓動時抓取一個新的json文件。但我發現即使我刪除了文件並下載了新文件,手機仍然以舊文件結束。Android不抓取新的json文件

刪除代碼:

if (test.exists()) { 
      test.delete(); 
      Log.i(TAG, "Deleting File"); 
     } else { 
      Log.i(TAG, "File does not exist"); 
} 

下載代碼:

DownloadManager.Request request = new DownloadManager.Request(Uri.parse(path)); 
    request.setTitle("stations.json"); 
    request.setDescription("File is being downloaded....."); 
    request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE); 
    request.setDestinationInExternalFilesDir(getApplicationContext(), null, "stations.json"); 
    request.setVisibleInDownloadsUi(false); 


    manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); 
    jsonRef = manager.enqueue(request); 

我將文件從存儲器中刪除自己。它仍然抓住舊文件。如果服務器版本已更新,我已檢入瀏覽器。它是。我對可能發生的事情感到不知所措。如果Stack社區有任何建議,將不勝感激。非常感謝!

+1

是否有可能,它的被緩存:

String path = example.com/stations.json?v=" + Math.random(); 

然後用下載?你可以嘗試用'?v =「+ Math.random()'? –

+0

添加url嗎?你是否手動刪除文件並在下載舊文件後出現? –

+0

是的,那就是發生了什麼事情。@MCZ – MJDude

回答

1

看來我的手機是以某種方式緩存文件。它會看到我正在下載相同的文件,而只是把它給我。通過給它一個新的url,它欺騙了應用程序,認爲它是一個新文件。

到底,什麼工作是添加:

?v=" + Math.random() 

到文件的末尾。

例如:

DownloadManager.Request request = new DownloadManager.Request(Uri.parse(path));