android.os.Handler和java.util.logging.Handler之间的区别?

android.os.Handler和java.util.logging.Handler之间的区别?,android,handler,Android,Handler,这个问题相当于它的总和。我错误地导入了java.util.logging,没有获得所需的功能。现在我解决了我的问题,但我想知道为什么android创建了两个处理器。我们可能会错误地导入错误的。与片段和支持片段相同。来自: android.os.Handler: 处理程序允许您发送和处理消息和可运行对象 与线程的MessageQueue关联。每个处理程序实例都是 与单个线程和该线程的消息队列关联。什么时候 创建新的处理程序后,它将绑定到的线程/消息队列 创建它的线程--从那时起,它将交付 将消息和

这个问题相当于它的总和。我错误地导入了java.util.logging,没有获得所需的功能。现在我解决了我的问题,但我想知道为什么android创建了两个处理器。我们可能会错误地导入错误的。与片段和支持片段相同。

来自:

android.os.Handler:
处理程序允许您发送和处理消息和可运行对象 与线程的MessageQueue关联。每个处理程序实例都是 与单个线程和该线程的消息队列关联。什么时候 创建新的处理程序后,它将绑定到的线程/消息队列 创建它的线程--从那时起,它将交付 将消息和可运行项添加到该消息队列,并在它们运行时执行它们 从消息队列中出来

发件人:

java.util.logging.Handler 处理程序对象从记录器获取日志消息并将其导出。信息技术 例如,可以将它们写入控制台或写入文件,或者 将它们发送到网络日志服务,或转发到操作系统日志, 或者别的什么

处理程序可以通过执行setLevel(Level.OFF)来禁用,并且可以 通过使用适当的level.Handler执行setLevel重新启用 类通常使用LogManager属性为 处理程序的筛选器、格式化程序和级别


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

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


java.util.logging.Handler来自vanilla java。它是各种类型日志端点(套接字、文件…)的超类

android.os.Handler
是由android开发团队创建的一个类,用于处理消息

还有其他例子:

  • Apache DateUtils和Android DateUtils
  • java.lang.Integer
    android.R.Integer

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


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


处理程序有两个主要用途:(1)将消息和可运行文件安排为将来某个时间点执行;和(2)将要在不同线程上执行的操作排队

示例:如果要在UI线程上执行某些操作。 这仅在android API中可用

处理程序对象从记录器获取日志消息并将其导出。例如,它可以将它们写入控制台或写入文件,或将它们发送到网络日志服务,或将它们转发到操作系统日志,等等

示例:要在提供的处理程序无法处理的地方写入输出,请创建自己的处理程序并使用logger钩住。日志将由您提供的处理程序编写


这是一个巨大的差异。调用类处理程序并不意味着它们都工作相同。处理者执行提供给他们的任务。它可以是日志记录,如果是android,它可以是某个任务的执行。

要将要在不同线程上执行的操作排队,请解释它。就像在UI线程上执行一样。阅读本文(特别是“在UI线程上定义处理程序”部分)