Viewの中身は、UIスレッド上でのみ変更できます。
別Threadで変更したい場合、Handler.post()でUIスレッドに依頼する方法が一般的ですね。
もっと簡単な方法があります。

その方法とは

1
2
3
4
5
6
mActivity.runOnUiThread(new Runnable() {
    @Override
    public void run() {
        Toast.makeText(this, "Hello?", Toast.LENGTH_SHORT).show();
    }
}

Activity#runOnUiThread()を使う方法です。らくちん!
別スレッド生成時にActivityのインスタンスを渡してあげれば応用が効きますね。