java - 如何在 Timer 完成数组列表迭代后停止 Java

标签 java arraylist timer

我有这个计时器方法:

public void setTimer(int seconds, String userName, String content) {
    Timer timer = new Timer();
    timer.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            setTweet(userName, content);
            System.out.println("tweet posteado cada 5 segs");
        }
    }, 0, (seconds*1000));       
}  

变量“content”由数组列表定义。如何启动计时器,遍历数组列表并在完成后停止计时器?

编辑:添加数组列表:

public ArrayList<String> readSelectedExcel(File path){
    ArrayList<String> tweetsArray = new ArrayList<>();
    try{
        FileInputStream fileInputStream = new FileInputStream(path);
        XSSFWorkbook wb = new XSSFWorkbook(fileInputStream);
        XSSFSheet sheet = wb.getSheetAt(0);
        sheet = wb.getSheetAt(0);
        for (Row myrow : sheet) {
            for (Cell mycell : myrow) {
                tweetsArray.add(mycell.getStringCellValue());
            }
        }
    }catch (FileNotFoundException te) {
        te.printStackTrace();
        System.out.println("Accounts.xlsx Not Found");
    } catch (IOException e) {
        e.printStackTrace();
    }  

    return tweetsArray;
}

最佳答案

您可以使用schedule(TimerTask task, long delay)而不是 scheduleAtFixedRate(TimerTask 任务,长延迟,长周期)

这是一个例子:

int seconds = 1;
for(int i = 0; i < list.size(); i++){
    setTimer(seconds * i, userName,list.get(i));
}

public void setTimer(int seconds, final String userName, final String content) {
         Timer timer = new Timer();
         timer.schedule(new TimerTask() {
             @Override
             public void run() {
                 setTweet(userName, content);
                 System.out.println("tweet posteado cada 5 segs");
             }
         }, (seconds*1000));       
}

关于java - 如何在 Timer 完成数组列表迭代后停止 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36510970/

相关文章:

java - 错误取消部署 tomcat7.0.54 + jsf 2.2

java - 断言 SQL 表中的所有列和行

java - 数组 if 语句并打印数组

android - 无法将处理程序和可运行对象放置在 OnLocationChanged() 内

c# - C#中的毫秒级精确定时器

java - Jar文件创建

java - 向安卓应用程序添加日历,标记某些事件

java - 将 ArrayList<Integer> 转换为 int[] 的最快方法

java - "this"关键字在默认 ArrayList 构造函数中意味着什么?

c# - 我应该在我的代码中使用 thread.sleep 还是定时器?