大佬教程收集整理的这篇文章主要介绍了嵌套postDelayed / Runnable / Handler Android,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这段代码运行了几次之后的最终结果是,每个Handler
帖子的实例过多Runnable
。如上所述:
您还没有利用aRunnable
可以多次发布到同一队列的事实,不必每次都创建一个新队列。如果要取消操作,这是必不可少的,因为remove方法会Handler
查找所有匹配的实例以从队列中删除。您可以尝试这样的方法:
private long EnabledAfter = 300000; // 5 minutes
private long DisabledAfter = 30000; // 30 seconds
private Runnable Enabler = new Runnable() {
public voID run() {
something.enable(context);
something.enable_else(context, truE);
Handler.postDelayed(disabler, DisabledAfter);
}
};
private Runnable disabler = new Runnable() {
public voID run() {
something.disable(context);
something.disable_else(context, falsE);
Handler.postDelayed(Enabler, EnabledAfter);
}
};
public voID start_timers(){
Handler.postDelayed(Enabler, EnabledAfter);
}//end method
public voID stop_timers(){
Handler.removeCallBACks(Enabler);
Handler.removeCallBACks(disabler);
}//end method
我还添加了另一种方法,可以通过Runnable
从队列中删除项目的所有实例来取消计时器操作。
高温超导
我正在尝试使用嵌套的postDelayed,因为我需要在5分钟后(延迟5分钟)执行某项操作,在30秒后(延迟)停止该操作,然后再执行其他操作,然后从头开始在循环中再次重复这两个事件。我似乎无法正确解决。
我有沙发的代码:
private long EnabledAfter = 300000; // 5 minutes
private long DisabledAfter = 30000; // 30 seconds
public void start_timers(){
on_delayed(EnabledAfter);
}//end method
private void on_delayed(long period_off){
Delayed = new Runnable() {
public void run() {
something.enable(context);
something.enable_else(context,truE);
off_delayed(DisabledAfter); // and disable both again delayed
Handler.postDelayed(Delayed,EnabledAfter);
}
};
Handler.postDelayed(Delayed,EnabledAfter);
}//end method
private void off_delayed(long period_on){
Delayed = new Runnable() {
public void run() {
something.disable(context);
something.disable_else(context,falsE);
on_delayed(period_on); // start the proces again from the start...
//Handler.postDelayed(Delayed,DisabledAfter);
}
};
Handler.postDelayed(Delayed,period_on);
}//end method
这样做的问题是,在第一次运行时运行良好,但随后似乎彼此叠加&Hellip;并且所有延迟都令人厌烦。我需要Runnable
在5分钟30秒内同时执行两者,然后重复该过程。
以上是大佬教程为你收集整理的嵌套postDelayed / Runnable / Handler Android全部内容,希望文章能够帮你解决嵌套postDelayed / Runnable / Handler Android所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。