0

Toastスレッド内にメッセージを表示したいのですが、

RunTimeException:Can't create handler inside thread that has not called Looper.prepare()

私を助けてください。前もって感謝します。

4

2 に答える 2

11

スレッドで以下のコードを試してください

runOnUiThread(new Runnable() 
        {                
            @Override
            public void run() 
            {
                //Your toast code here
            }
        });

スレッドが非 GUI スレッドであり、非 GUI スレッドから GUI 要素にアクセスできないとどうなりますか?

于 2011-02-23T06:21:56.280 に答える
4

インスタンスを使用してandroid.os.Handler、別のスレッドから UI スレッドにアクセスします。

例えば:

class YourUI exends Activity {

    private Handler hm;

    @override
    public void onCreate(Bundle b) {
        // do stuff, and instantiate the handler
        hm = new Handler() {
            public void handleMessage(Message m) {
                // toast code
            }
        };
    }


    public Handler returnHandler(){
        return hm;
    }
}

非 UI スレッドでは、これを使用します。

YourUI.getHandler().sendEmptyMeassage(0);
于 2011-02-23T06:43:13.223 に答える