0

如何从线程向主 UI 循环器发布消息?我正在研究一个独立的助手类,它应该显示一个窗口。

一个不好的解决方案是通过构造传递一个视图,然后使用 View.post(),但我正在寻找一个更好的解决方案。

我认为这会起作用,但我得到了常见的“在 ui 线程上没有”异常。

public class Example {

    private Context context;

    public Example(Context context) {
        this.context = context;
    }

    public void build() {

    }

    public void show() {
        Handler handler = new Handler(Looper.getMainLooper());
        handler.post(new Runnable() {
            @Override
            public void run() {
                Toast.makeText(context, "test", Toast.LENGTH_LONG);
            }
        }); 
    }

}
4

1 回答 1

1

只需传递上下文并使用 runonUiThread 方法,就像这样,

((Activity)contextObj).runOnUiThread(new Runnable() {

                public void run() {
                     Toast.makeText(context, "test", Toast.LENGTH_LONG).show();

                }
            });
于 2012-07-04T10:06:56.017 回答