3 回答
![?](http://img1.sycdn.imooc.com/54586431000103bb02200220-100-100.jpg)
TA贡献1830条经验 获得超3个赞
如果fun2()应始终在定时器输入fun1()完成后执行,则只需在onFinsih()方法内部调用即可,如下所示:
public void func1(){
new CountDownTimer(4000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
// TODO Auto-generated method stub
}
@Override
public void onFinish() {
func2();
}
}.start();
}
public void func2(){
}
这是调用函数的好地方的原因是,onFinish时间到时将触发回调。这将确保您实现预期的行为。
![?](http://img1.sycdn.imooc.com/5458692c00014e9b02200220-100-100.jpg)
TA贡献1799条经验 获得超6个赞
在Java中,JRE顺序执行每一行中指定的指令。在这里,由于多线程,我看到您有一个特殊的要求。
可以使用以下方法来解决此问题:
选项1:
在func1()的onFinish()方法内调用func2()。这样就可以确定它在func1()代码执行之后正在执行。
@Override
public void onFinish() {
func2();
}
选项2:
由于您是在func1()方法中设置等待时间的,因此在您的调用模块中调用func2()之前,请添加计时器。
func1();
setTimeout(function () {
func2();
}, 5000);
希望能帮助到你!!
![?](http://img1.sycdn.imooc.com/54584f3100019e9702200220-100-100.jpg)
TA贡献1851条经验 获得超4个赞
您可以在中的func1()CountDownTimer方法中调用fun2()onFinish()。
喜欢 :
public void func1(){
new CountDownTimer(4000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
// TODO Auto-generated method stub
}
@Override
public void onFinish() {
func2();
}
}.start();
}
public void func2(){
}
添加回答
举报