我知道我可能离开这里了,但是我正在尝试创建一个定时器数组,以便mytimer [0] mytimer [1],mytimer [2]等等...以不同的间隔发射,并发送不同的事件到服务器.有任何想法吗?for循环值6是有机数,仅用于测试目的.稍后将根据程序的xml文件中的设置来确定此编号.
Timer mytimers[] = new Timer[6];
for(int i = 0;i < 6;i++){
final int mytime = i;
mytimers[i].scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
//do action
sendData("Timer " + mytime + " fired");
}
}, 10000, i*1000);
}
Run Code Online (Sandbox Code Playgroud)
Timer mytimers[] = new Timer();
Run Code Online (Sandbox Code Playgroud)
我假设这是不起作用的线?您无法使用对象初始化数组; 用数组初始化它:
Timer mytimers[] = new Timer[6];
Run Code Online (Sandbox Code Playgroud)
再猜测一下,你也没有初始化个别计时器:
mytimers[i].scheduleAtFixedRate(new TimerTask() {
Run Code Online (Sandbox Code Playgroud)
此时,mytimers [i]没有任何设置,所以你怎么能打电话scheduleAtFixedRate
呢?首先初始化它:
mytimers[i] = new Timer();
mytimers[i].scheduleAtFixedRate(new TimerTask() {
Run Code Online (Sandbox Code Playgroud)
编辑:
你的"IllegalArgumentException:非正面时期".是因为第一次通过循环,i = 0
所以i * 1000 = 0
,并且周期不能为0("每0秒零运行此事件").
从一开始i = 1
就应该没问题.
归档时间: |
|
查看次数: |
3311 次 |
最近记录: |