gpt4 book ai didi

android - 如何停止处理程序?

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

我有一个疑问.. 我的应用程序中的 Activity 中有一个处理程序。尽管我的 Activity 破坏了处理程序仍在运行。它是否在应用程序进程以外的不同进程上运行?任何人都可以解释为什么它会这样工作吗?是否可以在 Activity onDestroy 时停止处理程序?

提前致谢。

最佳答案

如文档中所述

http://developer.android.com/reference/android/os/Handler.html

“每个 Handler 实例都与单个线程和该线程的消息队列相关联。”

当您即将完成 Activity 时,例如在 onDestroy() 中,您还需要取消为其启动的可运行对象的回调:

mHandler.removeCallbacks(previouslyStartedRunnable);

即使在您的 Activity 处于 Activity 状态时,您也可以不检查是否已触发 runnable。

更新:

还有两种情况需要考虑:

1.) 您已经以一种为 Runnable 创建新类的方式实现了您的 Handler,例如

private class HandleUpdateInd implements Runnable...

通常,如果您必须使用当前参数集(可能会在 runnable 触发之前更改)开始延迟可运行,则您需要这样做。要取消它,您需要使用

mHandler.removeCallbacksAndMessages(HandleUpdateInd.class);

2.) 如果您使用的是内联调用(JPM 感谢您的评论)

handler = new Handler() { public void handleMessage(Message msg) { ... } };

然后您需要为该消息定义“什么”值。稍后,如果您需要取消它,您可以使用

handler.removeMessages(what); 

执行该任务。

关于android - 如何停止处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5038038/

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