2016-01-15 46 views
3

我有我的Android應用程序需要發送數據到服務器達到一定的內存限制。我正在檢查使用的內部存儲器 -從ArrayList檢索數據

StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath()); 
long bytesAvailable = (long)stat.getBlockSize() * (long)stat.getAvailableBlocks(); 
long megAvailable = bytesAvailable/(1024 * 1024); 
Log.e("","Available MB : "+ megAvailable); 

假設可用MB最初爲800MB。我有一個ArrayList對象,每隔10秒不斷添加元素。一旦我的可用MB變成700MB,我希望我的數據在ArrayList中發送到服務器。

我想知道的是,當可用MB成爲700MB-

一)如何檢索到的當前位置(在該MB可用700MB變的位置從ArrayList中從第0個位置的數據),併發送一次全部。

B)發送清除ArrayList和開始存儲新的數據,直到可用MB變爲600MB

回答

1

當您將數據添加到你可以保持一個計數ArrayList中後。當您調用該方法來確定您是否已觸及700 mb時,您可以將該計數作爲參數發送。

可以調用的ArrayList

的 ​​ 子列表方法可以使用removeAll()刪除所有元素。

我完全不知道如何保持'到'這裏的計數。但無論如何,當你向數組添加數據時,你可以保留一個計數器並將其發送到你想要調用的方法。

+0

我如何知道子列表中的索引位置 – FAZ

+0

當您將數據添加到數組列表時,您可以保留一個計數。當你調用該方法來查明你是否已經觸及700 MB時,可以將該計數作爲參數發送。是否有意義 ? –