从线程发布Toast消息

And*_*rew 11 multithreading android toast

我的应用程序启动一个线程来查询Web上的一些数据.我没有找到任何内容时显示Toast消息,但我的应用程序总是崩溃.

我已尝试在线程中使用应用程序Context,如下所示:

Toast.makeText(getApplicationContext(), "testttt", Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)

我还尝试使用Toast调用创建一个Runnable并从Thread调用runOnUiThread(runnable)(此runnable中的Toast调用使用Activity作为第一个参数).

有没有人对如何做到这一点有任何想法?

dav*_*ino 22

尝试将内部发布到Handler对象.

final Handler mHandler = new Handler();
final Runnable mUpdateResults = new Runnable() {
    public void run() {
        Toast(this, message, duration).show();
    }

new Thread() {
    public void run() {
        mHandler.post(mUpdateResults);
    }
}.start();
Run Code Online (Sandbox Code Playgroud)