0

スレッドからメイン UI ルーパーにメッセージを投稿するにはどうすればよいですか? ウィンドウを表示するスタンドアロンのヘルパー クラスに取り組んでいます。

悪い解決策は、コンストラクトを介してビューを渡し、View.post() を使用することですが、より良い解決策を探しています。

これでうまくいくと思いましたが、一般的な「no on ui thread」例外が発生します。

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 に答える