一个android Timer,为什么只执行了一次

 我来答
来阿蒙
2015-02-02 · TA获得超过1295个赞
知道小有建树答主
回答量:469
采纳率:0%
帮助的人:414万
展开全部
通过 timer.schedule执行的?那注意参数写法, timer.schedule(task,1000,5000),表示1秒后开始,5秒为周期,循环执行, timer.schedule(task,5000),表示5秒后执行一次结束。
百度网友4c181cc
2015-07-17 · TA获得超过2808个赞
知道小有建树答主
回答量:3518
采纳率:62%
帮助的人:419万
展开全部
一个android Timer,为什么只”相关的解决方案进行了整理,用户详细问题包括:
public void getPaisong() {
final Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 1: {
// 初始化搜索模块,注册事件监听
mSearch = new MKSearch();
mSearch.init(app.mBMapMan, new MyMKSearchListener());
jiexi();
cou++;
Toast.makeText(
BMapApiDemoApp.mDemoApp.getApplicationContext(),
"执行了"+cou+"一次!", Toast.LENGTH_LONG).show();
}
break;
}
super.handleMessage(msg);
}
};
TimerTask task = new TimerTask() {
public void run() {
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
};

timer = new Timer(true);
timer.schedule(task, 5000); // 延时1000ms后执行,1000ms执行一次
// timer.cancel(); //退出计时器
}

我在oncreate方法里直接调用了getPaisong()方法,可是只显示cou=1,具体解决方案如下:

解决方案1:
好吧 原来是
timer.schedule(task,1000,,5000); // 延时1000ms后执行,1000ms执行一次
解决方案2:
呵,开始接触这个类的时候我也迷茫了一把
解决方案3:
要重复的话,就用repeate
解决方案4:
timer.schedule(task, 5000); 两个参数的schedule 就只是执行一次吧。
要用三个参数的schedule。
解决方案5:
我去,我也遇到这个问题。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f75fb29
2018-03-29
知道答主
回答量:5
采纳率:0%
帮助的人:5284
展开全部
  • //delay 为long类型:从现在起过delay毫秒执行一次。    

  • timer.schedule(task, delay);     

  • //delay为long,period为long:从现在起过delay毫秒以后,每隔period毫秒执行一次。   

  • timer.schedule(task, delay,period);   

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
baikewsp
2015-08-01 · TA获得超过1万个赞
知道小有建树答主
回答量:4588
采纳率:42%
帮助的人:687万
展开全部
public void getPaisong() {
final Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 1: {
// 初始化搜索模块,注册事件监听
mSearch = new MKSearch();
mSearch.init(app.mBMapMan, new MyMKSearchListener());
jiexi();
cou++;
Toast.makeText(
BMapApiDemoApp.mDemoApp.getApplicationContext(),
"执行了"+cou+"一次!", Toast.LENGTH_LONG).show();
}
break;
}
super.handleMessage(msg);
}
};
TimerTask task = new TimerTask() {
public void run() {
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
};

timer = new Timer(true);
timer.schedule(task, 5000); // 延时1000ms后执行,1000ms执行一次
// timer.cancel(); //退出计时器
}

我在oncreate方法里直接调用了getPaisong()方法,可是只显示cou=1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式