从ArrayList检索数据

时间:2016-01-15 15:55:40

标签: java android arraylist

我的Android应用程序需要在达到一定的内存限制后将数据发送到服务器。我正在使用 -

检查内部存储器
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时 -

a)如何从ArrayList检索数据从第0个位置到当前位置(可用MB变为700MB的位置)并立即发送所有数据。

b)发送清除arraylist并开始存储新数据,直到Available MB变为600MB

1 个答案:

答案 0 :(得分:1)

将数据添加到arraylist时,您可以保持计数。当您调用该方法以查明是否已触及700 mb时,您可以将该计数作为参数发送。

您可以调用ArrayList的子列表方法

int to = 4;
int from = 0;
al.subList(from, to);

您可以使用removeAll()删除所有元素。

我完全不知道你如何能够记录下来的数据。这里。但无论如何,当您向数组添加数据时,您可以保留一个计数器并将其发送到您要调用的方法。