handler.postDelayed 在 IntentService 的 onHandleIntent 方法中不起作用

2023-11-23

final Handler handler = new Handler();
LOG.d("delay");
handler.postDelayed(new Runnable() {
    @Override public void run() {
        LOG.d("notify!");
        //calling some methods here
    }
}, 2000);

“延迟”确实显示在日志中,但根本不显示其他内容。以及调用的方法run()也根本不被调用。谁能帮忙解释为什么会发生这种情况,我做错了什么吗?

具有此代码的类扩展了 IntentService,这会出现问题吗?

===========================

更新: 我把这段代码放在扩展的类中IntentService。我发现它唯一有效的地方是在构造函数中。但我需要把它放在onHandleIntent方法。所以我检查了文档onHandleIntent它说:

该方法在工作线程上调用,并发出要处理的请求。一次仅处理一个 Intent,但处理发生在独立于其他应用程序逻辑运行的工作线程上。因此,如果此代码需要很长时间,它将阻止对同一 IntentService 的其他请求,但不会阻止其他任何请求。当所有请求都处理完毕后,IntentService 会自行停止,因此您不应调用 stopSelf。

所以根据我得到的结果,我觉得我不能使用postDelayed在“工作线程”中。但任何人都可以解释一下这一点,比如为什么这在工作线程中不起作用?提前致谢。


Convert

final Handler handler = new Handler();

to

final Handler handler = new Handler(Looper.getMainLooper());

这对我有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

handler.postDelayed 在 IntentService 的 onHandleIntent 方法中不起作用 的相关文章

随机推荐

  • Python re:在变量中存储多个匹配项

    我想匹配字符串的不同部分并将它们存储在单独的变量中以供以后使用 例如 string bunch oranges bananas apples rxp a z var1 var2 var3 这样我就有了 var1 oranges var2 b
  • Ruby:时间的平均数组

    我的方法中有以下方法Array class class Array def avg if partial include avg times else blank and 0 0 or sum to f size round 2 end e
  • MS 身份和访问工具 MVC 4

    这个 VS 2012 扩展旨在允许我将本地开发 STS 添加到我的 MVC 应用程序中http visualstudiogallery msdn microsoft com e21bf653 dfe1 4d81 b3d3 795cb1040
  • MongoDB - 使用 C# 驱动程序按日期和时间搜索

    您好 我想使用 MongoDB 的 C 驱动程序查找两个日期 带时间 之间的条目 但我使用的 Find Filter 方法会忽略时间并仅按日期搜索 我认为 我究竟做错了什么 My POCO public class TestClassFor
  • 使用 Gradle 运行 Karma?

    我有 Jasmine 单元测试 我想运行它并获取伊斯坦布尔代码覆盖率报告 我可以运行命令行脚本来在 Jenkins 中运行 Karma 但最好使用我的 build gradle 执行所有内容 是否可以使用 Gradle 运行 Karma 我
  • “异步”是否在单独的线程中运行? [复制]

    这个问题在这里已经有答案了 当我调用 foo 时 该方法是否在单独的线程上运行 public async Task
  • C# 中两个问号在一起意味着什么?

    遇到了这行代码 FormsAuth formsAuth new FormsAuthenticationWrapper 这两个问号是什么意思 是某种三元运算符吗 在谷歌上很难查到 它是空合并运算符 非常类似于三元 立即 if 运算符 也可以看
  • var myArray =[], 名称;?

    下面的语句中 name 有什么作用 var myArray name 我通常按 如下方式初始化数组 var myArray 它是简写 var myArray var name 这是关于个人喜好
  • 在树枝中循环并在三次迭代后中断

    我有以下树枝代码 for likeditem in user getItemLikes iterate over each liked items here endfor 但是我只想迭代前 3 项user getItemLikes 我该怎么
  • 与界面交互?

    从我读到的内容看来 人们可以与界面进行交互 例如 假设我有一个带有空方法 eat 的接口 然后有2个子类正在实现这个接口 我的控制器可以仅与界面交互并使用它的 eat 方法吗 看看这个链接中的图片strategy 除了访问其中定义的任何常量
  • 使用 Python 和 Numpy 创建原始图像的图像图块 (m*n)

    我正在使用 numpy 从 16 位 tiff 图像 13777 16004 创建 224 224 的图块 我能够沿着行和列裁剪 切片成 224 224 的相等图块 我在尝试创建新的图块时遇到了问题 移动图块大小的一半 例如 我想要实现的粗
  • Alamofire 与 -d

    我需要像邮递员那样提出请求 但是在阿拉莫菲尔 curl X DELETE http someUrl H authorization JWT someToken H cache control no cache H content type
  • 如何在 HTML 中将一个文本区域嵌入到另一个文本区域内?

    有没有办法将一个文本区域块嵌入另一个文本区域块内 但不渲染内部文本区域并保留外部文本区域 我无法修改内部文本区域 也许有比文本区域更适合外部块的东西 我需要一些可以在 POST 提交其内容的东西 将内部尖括号转换为实体是not一个选项 因为
  • tomcat安全约束影响缓存

    我在缓存我的应用程序时遇到问题 当此代码添加到 tomcat 的 web xml 时
  • Android - 如何获取 Spinner 中的所有项目?

    如何获得 Spinner 中的所有物品 我在尝试寻找一种方法来获取所有项目时遇到了麻烦Spinner但我无法找到一个优雅的解决方案 唯一的解决方案似乎是在将其添加到之前存储项目列表Spinner 还有其他更好的方法吗 一个简单而优雅的方法是
  • Android、Ormlite、数据库位置

    我正在使用 Ormlite 保存 Android 应用程序 在 Motorola Xoom 上运行 中的一些数据 默认情况下 sql数据库保存到 data data 包名 databases dbname db 问题是 Xoom 没有 ro
  • 为什么 noreturn/__builtin_unreachable 会阻止尾调用优化

    我发现 如果被调用函数不返回 即标记为 Noreturn noreturn 或者有一个 builtin unreachable 通话后 这是有意为之的行为 而不是错过的优化 如果是的话 为什么 示例1 ifndef cplusplus de
  • 使用 JAXB 从 JSON 解组嵌套对象

    我正在尝试使用 Eclipselink 将输入 JSON 解组到 JAXB 对象中 然而 当我尝试这样做时 我发现嵌套对象最终被设置为空 我可以尝试自行解组嵌套对象 并且它将一直工作 直到它必须解组进一步的嵌套对象 然后该对象也设置为 nu
  • 当 UDP 标头校验和不正确时,UDP 数据包是否会被丢弃?

    如果我打开一个原始套接字 并发送带有错误校验和的 udp 数据包 这些数据包是否会被 tcp ip 堆栈丢弃到另一侧 是的 它们会被丢弃 如果您需要更可靠的通信 那么使用 TCP 会更好 欲了解更多信息 请看一下 http www diff
  • handler.postDelayed 在 IntentService 的 onHandleIntent 方法中不起作用

    final Handler handler new Handler LOG d delay handler postDelayed new Runnable Override public void run LOG d notify cal