赞
踩
方式1:执行单一定时器任务
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
mHandler.sendEmptyMessage(CONNECT_PLATFORM_START);
}
}, 2000);
方式2:执行多个定时器任务来实现Recycleview的批量更新
现在如下图所示,需要每隔三秒钟刷新Recycleview里面的数据,并且是每次只刷新三个条目。
private Timer timer = null; private TimerTask task, taskS, taskB; private int updateNumB = 1;//0上部分 1中间 2下部分 private int updateNumS = 3;//3上部分 4中间 5下部分. timer = new Timer(); task = new TimerTask() { @Override public void run() { Message message = new Message(); message.what = TIME_TASK; handler.sendEmptyMessage(TIME_TASK); } }; taskS = new TimerTask() { @Override public void run() { //updateMessage()方法用来指定刷新哪一部分的数据 updateMessage(updateNumS); if(++updateNumS > 5){ updateNumS = 3; }; } }; taskB = new TimerTask() { @Override public void run() { updateMessage(updateNumB); if(++updateNumB > 2){ updateNumB = 0; }; } }; timer.schedule(task, 0, 3000); timer.schedule(taskS, 200, 1000); timer.schedule(taskB, 200, 5000);
public synchronized void updateMessage(int updateNum){
Message message = new Message();
message.what = TIME_TASK_UPDATE_ITEM;
message.arg1 = updateNum;
handler.sendMessage(message);
}
Handler handler = new Handler() {@Override public void handleMessage(Message msg) { //Log.d(TAG, "--------------------------handleMessage"); super.handleMessage(msg); switch (msg.what) { case TIME_TASK: { //更新数据 refreshCallList(); break; } case TIME_TASK_UPDATE_ITEM: { // if(mAdapterS!=null &&mStatListItem.size()!=0) // mAdapterS.notifyItemRangeChanged(0,2); // Log.i("LGYLGY", "handleMessage: msg.arg1 "+msg.arg1); int updateNum = msg.arg1; if (updateNum == 0) { mAdapterB.notifyItemRangeChanged(0, 3); } else if (updateNum == 1) { mAdapterB.notifyItemRangeChanged(3, 3); } else if (updateNum == 2) { mAdapterB.notifyItemRangeChanged(6, 3); } else if (updateNum == 3) { mAdapterS.notifyItemRangeChanged(0, 3); } else if (updateNum == 4) { mAdapterS.notifyItemRangeChanged(3, 3); } else if (updateNum == 5) { mAdapterS.notifyItemRangeChanged(6, 2); } // updateNum++; // if(updateNum==5)updateNum = 1; break; } default: break; } } };
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。