2013-11-28 71 views
0

我已經創建了一個簡單的日期概念的文本文件。每天的文本文件將在當天的日期存儲在我的系統中。我使用計時器概念自動發送這些文本文件到服務器。發送前一天的文件到服務器

現在我的問題是我想發送前一天的文本文件到服務器。例如:如果今天是星期一,並且按照我的計時器時間表8,我需要將週日(前一天)的文本文件發送到服務器。我被困在這裏,我不知道如何做到這一點。 這是我值編碼

File mydir = new File("file path"); 
mydir.mkdirs(); 
final String filename = new SimpleDateFormat("dd-MM-yyyy").format(new Date()); 
File outputFile = new File(mydir, filename); 
FileOutputStream fos = new FileOutputStream(outputFile,true); 

回答

0

你需要做的是建立在前一天的文件名,看看它是否存在,然後將其發送到服務器什麼。

請按照下列步驟操作。

  1. 創建一個新的Date對象
  2. 從這個減去一天 - 你會得到前一天的對象
  3. 創建基於此對象
  4. 與創建一個文件對象爲您的文本文件的文件名此路徑名
  5. 檢查文件是否存在

如果該文件存在,將文件發送到服務器上其他什麼也不做。

編輯:假設你能夠爲前一天創建正確的文件名,

String filePath = FILES_DIRECTORY + yesterdaysDate + FILE_EXTENSION; 
File yesterdaysFile = new File(filePath); 
if(yesterdaysFile.exists()){ 
    // Upload this file to the server 
} 
+0

文件在我的系統中。現在我的問題是如何將這些文件自動發送到服務器,以及如何安排這個 – AndroidOptimist

+0

我以爲你已經用計時器和時間表等計算出了這個問題,就像你的問題一樣。 – midhunhk

+0

使用計時器概念我會自動發送文件到服務器。但我的問題是我想將前幾天的文件發送到服務器。現在我只能發送今天的文件到服務器 – AndroidOptimist

1

您需要定義一個service和使用應最初由時間差從設定handler開始時間到8'O時鐘。那麼定時器間隔應該是24小時,在執行過程中你可以發送文件...

例如:你在下午5點安裝應用程序,你需要在下午8點開始發送文件,因此你計算了時間間隔((8-5) * 60 * 60 *60 * 1000)handler使用milliseconds。之後,你可以將其設置爲24 * 60 * 60 *60 * 1000

UPDATE

使用處理這樣

private int mInterval = 5000; // 5 seconds by default, can be changed later 
private Handler mHandler; 

@Override 
protected void onCreate(Bundle bundle) { 

    mHandler = new Handler(); 
} 

Runnable mStatusChecker = new Runnable() { 
@Override 
public void run() { 
    updateStatus(); //this function can change value of mInterval. 
    mHandler.postDelayed(mStatusChecker, mInterval); 
} 
}; 

void startRepeatingTask() { 
    mStatusChecker.run(); 
} 

void stopRepeatingTask() { 
    mHandler.removeCallbacks(mStatusChecker); 
} 

在這裏,您需要更改的時間間隔爲我與以前的日期早解釋

+0

可以發表一個例子,以便我可以更好地理解。上面我粘貼了我的編碼 – AndroidOptimist

+0

一個簡單的方法是將要上傳的文件的名稱保存在共享的首選項中,因此您可以避免計算文件名 –

+0

您發佈的代碼用於寫入文件不是它,在那裏創建服務有很多的教程,如vogella,然後像上面那樣做 –