android.os.Handler和java.util.logging.Handler的区别



这个问题差不多概括了它。我错误地导入了java.util.logging,没有获得所需的功能。现在我解决了我的问题,但我想知道为什么安卓已经创建了两个处理器。我们可能会误导入错误的。与Fragment和Support Fragment一样

来自Android文档:

handler:

Handler允许你发送和处理Message和Runnable对象与线程的MessageQueue相关联。每个Handler实例是与单个线程和该线程的消息队列关联。当创建一个新的Handler,它被绑定到的线程/消息队列创建它的线程——从那时起,它将交付消息和可运行程序到该消息队列,并将它们作为消息队列执行从消息队列中退出。

来自Oracle文档:

java.util.logging.Handler

Handler对象从Logger获取日志消息并导出它们。它例如,可以将它们写入控制台或将它们写入文件,或者将它们发送到网络日志服务,或转发到操作系统日志,等等。

处理程序可以通过执行setLevel(Level.OFF)来禁用通过使用适当的级别执行setLevel重新启用。处理程序类通常使用LogManager属性来设置默认值处理程序的过滤器、格式化器和级别

java.util.logging.Handler来自香草Java。它是各种类型的日志终端(socket, file…)的超类

android.os.Handler是android开发团队创建的用于处理消息的类。

还有其他的例子:

  • Apache DateUtils和Android DateUtils
  • java.lang.Integerandroid.R.integer

只要类在不同的包中,就允许它们具有相同的名称。(这也是不可避免的,因为人们必然会用相同的名字来指代模糊相似的事物)

Handler允许您发送和处理与线程的MessageQueue相关的Message和Runnable对象。每个Handler实例都与一个线程及其消息队列相关联。当您创建一个新的Handler时,它被绑定到创建它的线程的线程/消息队列中——从那时起,它将向该消息队列传递消息和可运行程序,并在它们从消息队列中出来时执行它们。

参考

Handler对象接受日志记录请求并将所需的消息导出到目标,例如文件、控制台等。可以通过将其日志级别设置为level . off来禁用它。

参考

android.os.Handler

Handler允许你发送和处理与线程的MessageQueue相关的Message和Runnable对象。每个Handler实例都与一个线程及其消息队列相关联。当您创建一个新的Handler时,它被绑定到创建它的线程的线程/消息队列中——从那时起,它将向该消息队列传递消息和可运行程序,并在它们从消息队列中出来时执行它们。

Handler有两个主要用途:(1)调度消息和可运行程序,以便在将来某个时间点执行;(2)让一个动作在不同的线程上执行,而不是在自己的线程上。

示例:如果你想在UI线程上执行一些操作。这只适用于android API

java.util.logging.Handler

Handler对象从Logger获取日志消息并导出它们。例如,它可以将它们写入控制台或写入文件,或将它们发送到网络日志服务,或将它们转发到操作系统日志,或其他。

示例:想要在某个地方输出不被提供的处理程序处理的输出,使用logger创建自己的处理程序和钩子。日志将由您提供的处理程序编写。

有很大的不同。调用类Handler并不意味着它们都是一样的。处理程序执行提供给他们的任务。它可以是日志记录,或者在android的情况下,它执行一些任务

相关内容

最新更新