Android:getMainLooper() 和 Looper.myLooper() 之间的区别

2024-01-17

我现在正试图复兴一个项目。 getMainLooper() 出现异常...

我认为MainLooper初始化可能有问题,并在此之前添加了Looper.prepareMainLoop()。

异常告诉我该对象已经有一个循环器被抛出......

然后我尝试用 Looper.myLooper() 替换 getMainLooper() 并且它起作用了......

但我不明白为什么=)

事实上我不明白这两件事之间的区别。我认为在我的项目中使用 getMainLooper() 的地方,它是应用程序的真正主循环程序的最佳位置,但我得到了我得到的..

请解释。

感谢您的关注


不同之处在于Looper.prepareMainLooper()在主 UI 线程中准备 Looper。 Android应用程序通常不会调用此函数。由于主线程在第一个活动、服务、提供者或广播接收器启动之前很久就准备好了循环程序。

But Looper.prepare()准备Looper在当前线程中。调用该函数后,线程可以调用Looper.loop()开始处理消息Handlers.

因此,在您的情况下,您有两个线程 - X 和 Y。X 线程是主 UI 线程,Android 已准备好其循环程序。当你在 Y 线程中并且你正在调用时Looper.prepareMainLooper()您正在尝试在 X 线程(主线程)中准备循环程序。这失败了,因为 X 的循环器已经准备好了。但当你打电话时Looper.prepare()在 Y 线程中,您实际上是在 Y 线程中准备循环程序,因此准备调用Looper.loop().

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

Android:getMainLooper() 和 Looper.myLooper() 之间的区别 的相关文章

  • Whatsapp 在 Android 中共享音频文件时正在剪切音频文件

    我在共享格式不是 mp3 的音频文件时遇到问题 文件被共享 但长度较短 例如 如果文件有 10 秒 则仅共享 5 秒 如果我使用 mp3 格式 它会完全共享 但其他格式会出现问题 注意 该文件在其他应用程序 如Messenger 中共享没有
  • 更改操作栏标题文本颜色

    我正在尝试更改 ActionBar 中标题文本的颜色 但我似乎无法让它工作 这是我尝试使用的风格 在我的应用程序主题中我使用titleTextStyle
  • Android 构建 gradle 在特定设备上失败

    我面临一个奇怪的问题 当我编译我的应用程序以在 Android 7 0 的设备上运行它时 它可以工作 但是当我尝试为 Android 4 2 1 的设备进行编译时 它会失败并出现以下错误 错误 任务 app transformClasses
  • Android,让文本切换器成为中心?

    如何集中我的文本切换器 我尝试过设置重力 但似乎不起作用 ts setFactory new ViewFactory public View makeView TextView t new TextView this t setTypefa
  • Android Studio磁盘空间不足如何解决?

    我随机收到此错误 并且不确定为什么 Android Studio 的磁盘空间变低 Android Studio 系统目录分区磁盘空间不足 Update 此应用程序安装在运行 10 10 1 的 Mac 上 具有 251GB 内部存储和占用
  • 不使用 CookieManager 的 Android 会话 cookie

    我的应用程序进行多次网络调用以获得身份验证 我需要将此会话存储在 cookie 中 我想使用 Cookie Manager 但经过一些研究后 我发现它仅适用于 API 9 及更高版本 并且我的应用程序需要向后兼容 我使用 HTTPURLCo
  • Android - 内容值覆盖现有行

    我正在尝试使用插入值ContentValues 我已将 5 个值插入到 5 列中 运行应用程序后 我只有最后一组值的行ContentValues 前四组未插入 ContentValues cv new ContentValues cv pu
  • Android框架结构与MFC/Win32结构的比较?

    我为 Android 和 Windows 进行开发 使用 MFC 有时使用 win32 昨天我随意比较了这两个框架 它们显然非常非常不同 因此 Windows 开发与 Android 开发有很大不同 我想知道人们认为 Android 这样的
  • 如何在Android中隐藏应用程序标题? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想隐藏应用程序标题栏 您可以通过编程来完成 import android app Activity import android os
  • 改造Android基本且简单的问题

    我的服务器返回简单的 Json 结果 如下所示 message Upload Success 我正在尝试将结果放入改造模型类中 public class MyResponse SerializedName message String me
  • 如果联系人与电话通讯录中的应用程序关联,则显示应用程序图标

    我正在尝试显示与该应用程序关联的电话号码的应用程序图标 我试着跟随this http www c99 org 2010 01 23 writing an android sync provider part 1 链接但是太难了 有没有任何库
  • Android apk 调试模式工作正常,但发布模式给出太多警告

    我正在尝试从 eclipse 获取签名的 APK 我有一个可调试的 apk 版本 运行良好 现在发布时 当我尝试使用 Eclipse ADT 进行编译和签名时 我收到很多警告 其中大部分是can t find superclass or i
  • 找不到资源矢量绘图的异常

    我将在某些设备上运行我的应用程序 其崩溃日志如下 01 04 16 54 02 206 7466 7466 com lawnmowers E AndroidRuntime FATAL EXCEPTION main Process com l
  • 我可以在主线程上读取一个小 txt 文件,还是应该始终避免那里的 I/O?

    我正在读取一个小的 json 文件 其中有几行 它存储在用户设备的内部应用程序文件夹中 我所做的就是这样 JSONObject jsonObject new JSONObject MyUtils inputStreamToString My
  • 在Android中提取视频帧

    我想知道是否可以从 Android 中正在运行的视频中提取帧 我需要定期提取帧并将其发送以进行进一步处理 有人能为我找到答案吗 Thanks Abhi 您可以使用媒体元数据检索器 http developer android com ref
  • 在android中的日期选择器对话框中显示当前日期

    我多次尝试在日期选择器对话框中显示当前日期 但失败了 它显示 1 1 1990 我已经遵循了堆栈溢出的一些答案 但不幸的是这些对我不起作用 谁能解释一下在日期选择器对话框中显示当前日期的代码 谢谢 It may help you publi
  • 如何手动添加Android Studio依赖

    我多次尝试向我的项目添加依赖项 但每次都会出现错误 我想添加它们的依赖项是 de hdodenhof circleimageview 1 3 0 and com github bumptech glide glide 3 6 1 所以我想下
  • TYPE_ACCELEROMETER 和 TYPE_LINEAR_ACCELERATION 传感器有什么区别?

    I think TYPE ACCELEROMETER显示设备加速 但是 我不明白什么时候应该使用TYPE LINEAR ACCELERATION 我需要计算移动设备的速度 哪种传感器适合此应用 另外 我读到TYPE LINEAR ACCEL
  • android-如何在谷歌地图上将标记的位置显示为地址

    我已经尝试过 commonsware googlemapsv2 教程 特别是在地图上拖动标记 但现在另一个问题困扰着我 问题是如何将标记的当前位置显示为地图下方或上方的地址 字符串 这是我使用的代码 public class MainAct
  • Android 中带有无尽列表视图滚动的 AsyncTask

    我正在创建一个应用程序 其中我需要有无限的滚动列表视图 我不想在我的应用程序中使用任何库 我在网上看到了一些有助于实现此类列表视图的示例 但我的疑问是 当我的数据来自服务器并在异步任务中进行解析时 如何才能拥有无尽的列表视图 如何从滚动异步

随机推荐

  • 将数据输入转换为数据输入流?

    java中如何将DataInput转换为DataInputStream 我需要知道数据输入的大小 由于根据定义 流实际上没有开始或结束 因此没有万无一失的方法来知道有多少可用 因此您只需以固定大小的块从流中读取 听起来你最好使用普通的旧 r
  • matplotlib 颜色条交替顶部底部标签

    首先 这是一个自我回答的问题 因为我相信这在某些情况下会有帮助 例如在这个帖子 https stackoverflow com questions 20337664 cleanest way to hide every nth tick l
  • SQL Server:带有标题的动态数据透视表,包含列名称和日期

    我正在尝试使用动态数据透视表 并且需要有关将行转换为列的帮助 该表看起来像 ID expense revenue date 1 43 45 12 31 2012 1 32 32 01 01 2013 3 64 56 01 31 2013 4
  • 为什么 Javascript 对于 Websocket 很重要?

    这似乎是一个奇怪的问题 但我真的很困惑 因为下载时这个例子来自龙卷风 https github com facebook tornado tree master demos websocket我想 好吧 我运行它 它会起作用的 但问题是 它
  • 每天在特定时间运行 CRON 作业

    现在我每天下午 3 点运行我的 cron 作业 0 15 但我想一天运行两次我的 cron 作业 上午 10 30 和下午 2 30 0 30 10 我相信该命令将在上午 10 30 运行 我应该如何在下午 2 30 运行它 Cron实用程
  • Excel:令人难以置信的收缩和扩展控件[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有时 我会遇到一个电子表格 其中的魔法按钮或列表框会随着时间的推移而变大或变小 代码中没有任何内容指示这一点 还有人经历过这种快乐吗 该问
  • 类型错误:无法读取未定义的属性“then”

    loginService islogged 上面的函数返回一个类似 failed 的字符串 但是 当我尝试在其上运行 then 函数时 它将返回错误 TypeError Cannot read property then of undefi
  • Fortran 2003 中的类型绑定过程重载

    我已经用 Java 编程几年了 然而 我现在正在学习一门使用 Fortran 作为示例代码 77 标准 的课程 尽管我一直将 Fortran 视为一门古老的语言 但我决定使用 gfortran 编译器尝试 2003 年标准的最新实现 以亲自
  • 在 Node.js 中使用 JSON 对象进行响应(将对象/数组转换为 JSON 字符串)

    我是后端代码的新手 我正在尝试创建一个函数来响应我的 JSON 字符串 我目前从一个例子中得到了这个 function random response console log Request handler random was calle
  • 更改回形针中的错误验证消息

    当您在回形针中设置验证消息时 例如 validates attachment presence image message gt xxxx 自定义消息会自动以字段名称作为前缀 即使它已被 message 覆盖 如何完全覆盖该消息并使其完全自
  • 如何让 PHP 使用国际化日期?

    我正在尝试让 PHP 日期能够跨语言工作 语言代码将根据登录用户的语言设置提供 我想我可以这样做 setlocale LC ALL de DE UTF 8 echo strftime A B Y 但输出是 Wednesday April 2
  • 如何获取表单提交popup.html chrome扩展的值

    我一直在尝试获取表单中用户输入的值 以传递给 chrome 扩展中的 javascript 函数 问题是我不知道如何获取用户输入 这是我的 manifest json 文件的一部分 browser action default icon a
  • 如何找到最长的回文子序列?

    问题就在这里 6 7ch6 http www cs berkeley edu vazirani algorithms chap6 pdf 来自算法书 Vazirani 与经典问题略有不同找到最长的回文 https stackoverflow
  • Python:语法错误:关键字 arg 之后非关键字

    当我运行以下代码时 def regEx1 os chdir C Users Luke Desktop myFiles files os listdir os mkdir C Users Luke Desktop FilesWithRegEx
  • Discord 机器人读取对设置消息的反应

    我让我的机器人读取所有渠道中的所有消息 然后根据只有 表情符号而没有其他内容来分配角色 常量高于所有代码 const Discord require discord js const bot new Discord Client const
  • 在没有 React.memo 的情况下使用 useCallback 有什么好处吗?

    根据我从 React 文档和网络上其他材料中了解到的 useCallback 用于通过确保将回调的记忆版本传递给子组件来避免重新渲染子组件 因此子组件的引用属性保持相同 但只有当我在子组件上使用 React memo 时 所有这些才有效 如
  • Clang、GCC 和 LTO 之间的互操作性

    我知道 Clang 和 GCC 或多或少是兼容的 C C 编译器 只要处理好架构标志 预定义和链接正确的库之类的事情 使用一个编译器创建库并将它们与另一个编译器创建的对象链接实际上非常简单 至少在 x86 上 这是一个小测试项目 正是这样做
  • 同步 XHR 弃用

    根据XHR规格 https xhr spec whatwg org async false已被弃用 现代用户代理应该开始警告甚至抛出异常 工作人员外部的同步 XMLHttpRequest 正在从 Web 平台中删除 因为它会对最终用户的体验
  • Doctests:如何抑制/忽略输出?

    以下 废话 Python 模块的 doctest 失败 gt gt gt L gt gt gt if True append to L XXX gt gt gt L 1 def append to L L append 1 class A
  • Android:getMainLooper() 和 Looper.myLooper() 之间的区别

    我现在正试图复兴一个项目 getMainLooper 出现异常 我认为MainLooper初始化可能有问题 并在此之前添加了Looper prepareMainLoop 异常告诉我该对象已经有一个循环器被抛出 然后我尝试用 Looper m