【发布时间】:2014-11-07 03:29:52
【问题描述】:
我想知道,如何以小组形式发送 arraylist 的项目,意思是说我在 arraylist 中有 100 个项目,我想分组发送项目,第一次将 4 个项目发送到服务器,延迟 1 或 2 分钟后接下来的 4 个项目发送到服务器,依此类推到 arraylist 项目的末尾。 谢谢
【问题讨论】:
标签: android loops arraylist items
我想知道,如何以小组形式发送 arraylist 的项目,意思是说我在 arraylist 中有 100 个项目,我想分组发送项目,第一次将 4 个项目发送到服务器,延迟 1 或 2 分钟后接下来的 4 个项目发送到服务器,依此类推到 arraylist 项目的末尾。 谢谢
【问题讨论】:
标签: android loops arraylist items
也许你可以使用 Timer 和 TimerTask。
这样,
static int DELAY_TIME = 60000; // ms, 1 min = 60s = 60000s, your delay time
Timer mTimer = new Timer();
TimerTask mTimerTask = new TimerTask() {
@Override
public void run() {
try {
// TODO: Your code
} catch (Exception e) {
e.printStackTrace();
}
}
};
mTimer.schedule(mTimerTask, 0, DELAY_TIME);
}
【讨论】:
你可以创建一个Runnable,然后使用Handler类的postDelayed方法。 每次执行 Runnable 的 Run 方法时,检查是否还需要发送更多的项目,如果是,则再次使用 postDelayed。
Handler handler = new Handler();
ArrayList mMyList;
public void sendToServer(ArrayList aList) {
mMyList = aList;
handler.post(senderRunnable);
}
int mLastSendIndex = 0;
Runnable senderRunnable = new Runnable(){
@override
void Run() {
// Http call to the sever here, sending 4.
mLastSendIndex +=4;
if (mLastSendIndex < mMyList.size()) {
handler.postDelayed(senderRunnable, 4000) // 4 seconds
}
}
}
【讨论】: