gpt4 book ai didi

android - 如何在 Android 代码中提前取消处理程序?

转载 作者:IT王子 更新时间:2023-10-28 23:27:20 25 4
gpt4 key购买 nike

如果服务未完成,我会创建 1 分钟的延迟计时器来关闭服务。看起来像这样:

private Handler timeoutHandler = new Handler();

onCreate() 内部

timeoutHandler.postDelayed(new Runnable()
{
public void run()
{
Log.d(LOG_TAG, "timeoutHandler:run");

DBLog.InsertMessage(getApplicationContext(), "Unable to get fix in 1 minute");
finalizeService();
}
}, 60 * 1000);

如果我在这 1 分钟之前完成工作 - 我想取消这个延迟的事情,但不确定如何取消。

最佳答案

你不能真正使用匿名 Runnable 来做到这一点。将 Runnable 保存到命名变量怎么样?

Runnable finalizer = new Runnable()
{
public void run()
{
Log.d(LOG_TAG, "timeoutHandler:run");

DBLog.InsertMessage(getApplicationContext(), "Unable to get fix in 1 minute");
finalizeService();
}
};
timeoutHandler.postDelayed(finalizer, 60 * 1000);

...

// Cancel the runnable
timeoutHandler.removeCallbacks(finalizer);

关于android - 如何在 Android 代码中提前取消处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5885587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com