Android:从单独的线程 class 更新 UI

Android: Updating UI from thread in separate class

在更新单独的 class 之后,我正在尝试更新我的应用程序中的几个 UI 元素。单独的 class 既不是 activity 也不是片段。谁能指出我正确的方向?处理程序在这里工作得很好吗,如果可以的话,你能给我指出一个可接受的处理程序示例吗?

您不能从与主线程不同的线程更新任何 UI 元素。如果您使用的是主线程,则可以将视图传递给另一个 class 中的方法并对其进行一些更改。

您可以单独使用它 class。

public void setView(Activity activity, View view) {
activity.runOnUiThread(new Runnable() {
            public void run()
            {
                /update your view here
            }
        });
    }

如果您愿意,您可以从 activity 变量获取视图,而不是传递视图。

您需要 link 将两个 class 结合在一起,方法可能是实现一个回调机制,该机制将使用处理程序处理到您的主应用程序线程中,假设您的外部 class可以使用 Activity class 注册回调。

或者更简单地说,您可以通过允许将引用从 Activity 传递到您的另一个 class 来使用上下文,但您要确保不泄漏上下文。