10 秒后运行任务,除非用户按下按钮
Posted
技术标签:
【中文标题】10 秒后运行任务,除非用户按下按钮【英文标题】:Run task after 10 seconds, unless user presses button 【发布时间】:2013-05-16 10:33:20 【问题描述】:在我的 android 应用中,我想安排一个任务在 10 秒内运行,除非用户按下特定按钮。
做这个的最好方式是什么?我应该使用java.util.Timer
、java.util.concurrent.ScheduledThreadPoolExecutor
还是别的什么?
提前谢谢你。
【问题讨论】:
【参考方案1】:您可以使用TimerTask 和处理程序。
【讨论】:
【参考方案2】:如果您从任务中访问 UI,则处理程序适合此操作:
Runnable runnable = new Runnable()
public void run ()
// Do your stuff here
Handler handler = new Handler();
handler.postDelayed(runnable, 10000);
在您的按钮操作中:
handler.removeCallbacks(runnable);
否则,Timer
很好。
【讨论】:
【参考方案3】:和Handler
及其postDelayed
方法
private Runnable requester = new Runnable()
@Override
public void run()
// cpde to execute here
;
public void onClick(View v)
new Handler().postDelayed(requester, 10000);
【讨论】:
以上是关于10 秒后运行任务,除非用户按下按钮的主要内容,如果未能解决你的问题,请参考以下文章
当我在 iOS 应用程序的后台任务(使用 GCD)中间按下 1 次主页按钮时,由于信号 9 而终止