int times = getTimes(); final int[] i = {times}; Timer timer = new Timer(); // 生成文件
// 解决Can't create handler inside thread that has not called Looper.prepare()问题 Looper.prepare(); final Handler handler = new Handler() { public void handleMessage(Message msg) { if (msg.what == 1) { doThing(filePath, p_data); } super.handleMessage(msg); }; }; Looper.loop(); // 采集中... final int[] iDataIndex = {0}; TimerTask task = new TimerTask() { @Override public void run() { doThings(); i[0]--; // 完成采集 if(i[0] == 0) { Message message = new Message(); message.what = 1; handler.sendMessage(message); cancel(); } } }; // 开始采集 timer.schedule(task, 0, 1000); // 0s后执行task,经过100ms再次执行