为什么 Android 中的 post() 方法附加到特定的视图?
Why is the post() method in Android attached to a specific View?
我想知道为什么 post() 方法是视图特定的,而不仅仅是静态方法。无论如何,Runnable 参数似乎并没有与特定视图紧密相关。
我确实找到了另一个问题,它解释了 runnable 将在绘制视图后运行,但这并不能完全回答我的问题。
What event is fired after all views are fully drawn?
因为它根据几个不同的标准决定 post 事件的处理程序。检查 AOSP 中的代码。如果视图附加到 window,它会使用附加信息中的那个。如果不是,它会在那里使用 ViewRoot.getRunQueue 和 post。因此,它有可能 post 调用不同的处理程序,例如,如果您在不同的 window 中有一个视图,就像您在其上调用 post 的 Toast 一样。因此需要一个非静态函数。
我想知道为什么 post() 方法是视图特定的,而不仅仅是静态方法。无论如何,Runnable 参数似乎并没有与特定视图紧密相关。
我确实找到了另一个问题,它解释了 runnable 将在绘制视图后运行,但这并不能完全回答我的问题。 What event is fired after all views are fully drawn?
因为它根据几个不同的标准决定 post 事件的处理程序。检查 AOSP 中的代码。如果视图附加到 window,它会使用附加信息中的那个。如果不是,它会在那里使用 ViewRoot.getRunQueue 和 post。因此,它有可能 post 调用不同的处理程序,例如,如果您在不同的 window 中有一个视图,就像您在其上调用 post 的 Toast 一样。因此需要一个非静态函数。