10 秒后运行任务,除非用户按下按钮

Posted

技术标签:

【中文标题】10 秒后运行任务,除非用户按下按钮【英文标题】:Run task after 10 seconds, unless user presses button 【发布时间】:2013-05-16 10:33:20 【问题描述】:

在我的 android 应用中,我想安排一个任务在 10 秒内运行,除非用户按下特定按钮。 做这个的最好方式是什么?我应该使用java.util.Timerjava.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 秒后运行任务,除非用户按下按钮的主要内容,如果未能解决你的问题,请参考以下文章

除非之前按下,否则按下运行按钮不会提高速度

在 Core Data 中 10 秒后杀死一个任务

当我在 iOS 应用程序的后台任务(使用 GCD)中间按下 1 次主页按钮时,由于信号 9 而终止

当用户按下主页按钮时停止 Android 服务

如何在用户手动关闭react-native-ios应用程序时运行一些代码?

任务计划程序不支持“以最高权限运行”和“运行天气用户是不是登录”选项