android - 使用处理程序时获取 CalledFromWrongThreadException

标签 android android-handler

当我按下按钮时,我不断收到 CalledFromWringThreadException。

我的程序是这样的:

public class MainActivity extends Activity implements Callback {
    Handler handler = new Handler(this);
    TextView tv = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv = (TextView) findViewById(R.id.tv1);
        Button button = (Button) findViewById(R.id.sendRequest);
        button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        //...
                        Message msg = handler.obtainMessage(0, new String("\nSending Request from " + sourcePortString));
                        handler.dispatchMessage(msg);
                        //...

                    }
                }).start();
            }
        });
    }

    @Override
    public boolean handleMessage(Message msg) {
        tv.append((CharSequence) msg.obj);
        return true;
    }

}

我确实尝试删除 implements Callback 并在匿名类中扩展 Handler 类,实现 handleMessage(Message msg) 方法。但是当我尝试向我的 TextView 附加一些内容时,我仍然得到相同的结果。

我遗漏了一些东西。

我以为我终于掌握了那些Handler...

你能帮帮我吗?

最佳答案

您使用了错误的方法 dispatchMessage

使用发送消息。 问候

关于android - 使用处理程序时获取 CalledFromWrongThreadException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21503584/

相关文章:

android list 很挑剔

android - 标签没有显示出来

android - 如何修复横向截断的自定义 SearchView 背景?

java - Android 定时器的处理程序和可运行对象

android - 启动 HandlerThread 后 getLooper() 返回 null

java - Android Handler 刷新 GUI

java - 为什么 BaseGameUtils 库中有这么多错误?

android - 使用 ViewPager 实现类似 iOS 应用关闭垂直滑动关闭的功能

android - 在死线程上向处理程序发送消息 Google Admob 奖励视频

android - 如何从另一个线程(Android 处理程序)在 ImageView 中显示位图