最近,我在用户线程中显示了一个toast,并得到了上述运行时错误。Handler或runOnUiThread解决方案“无法在未调用Looper.prepare()的线程中创建处理程序”
从Can't create handler inside thread that has not called Looper.prepare(),他们建议使用Handler
作为解决方案。但是,我看到解决方案非常冗长和繁琐。
我自己的解决方案是使用runOnUiThread
private void showTooDarkToastMessage()
{
((Activity) this.getContext()).runOnUiThread(new Runnable() {
@Override
public void run() {
Toast toast = Toast.makeText(getContext(), getResources().getString(R.string.toast_toodark), Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.show();
}
});
}
我想知道,有没有使用runOnUiThread
的任何缺点,相对于Handler
?
了解它,你仍然得到错误? – user936414 2012-02-28 03:57:29