作者Dacool (大裤)
看板java
标题[问题] 在Android用Timer去执行Button的Click
时间Mon Oct 5 16:29:45 2009
爬过文发现也是有过这样的问题,只是不是Android的,所以po了一篇文章来发问
举个问题的例子
Button btn;
TimerTask task1;
btn.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v)
{
/*DoSomething*/
}
});
TimerTask task1 = new TimerTask() {
public void run() {
/*btn的Click*/
}
};
我要如何在task1中去call到btn的Click
也就是把按按钮的事件以Timer触发
补充一下,其实是因为该method中有一行程式用Button触发的方式就可以正常执行
但只要用Timer的方式怎麽样都会执行到该行程式就跳出去
所以才会想说用Timer去执行Button的触发事件。
以下是跳出去的范例
TimerTask task1 = new TimerTask() {
public void run() {
程式1;
Log.i("Test","1");
程式2;
Log.i("Test","2");
}
};
那我在看Log的时候只会印出
1
1
1
1
.
.
.
.
但若用Button触发的话,是正常的
1
2
1
2
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.77.46.191
※ 编辑: Dacool 来自: 203.77.46.191 (10/05 16:34)
1F:推 PsMonkey:你把 DoSomething 抽成 method,然後 run() 呼叫就好啦 10/05 16:38
※ 编辑: Dacool 来自: 203.77.46.191 (10/05 16:43)
2F:推 PsMonkey:当然,你要研究 fire event 的方法当然是比较厉害一点 10/05 16:41
3F:→ PsMonkey:ㄜ... 我不确定 Andriod 是不是这个词,不过应该差不多 10/05 16:41
4F:→ PsMonkey:你要解释一下什麽叫做「跳出去」 ==" 10/05 16:49
※ 编辑: Dacool 来自: 203.77.46.191 (10/05 16:55)
※ 编辑: Dacool 来自: 203.77.46.191 (10/05 16:56)
※ 编辑: Dacool 来自: 203.77.46.191 (10/05 16:57)
5F:→ PsMonkey:==.==== 你也讲一下你 Button触发的地方怎麽写的吧? 10/05 17:12
6F:→ PsMonkey:说不定两边执行的内容根本不一样... [摊手] 10/05 17:13
7F:→ Dacool:是一模一样的,因为写出来又是一大段程式要解释所以就没贴 10/05 23:36
8F:→ Dacool:但已经找到方法解决了,原来是Timer不会去更新UI。 10/05 23:37
9F:→ Dacool:谢谢你的回应 10/05 23:39