【发布时间】:2013-11-13 22:05:29
【问题描述】:
我有以下代码在另一个线程中运行一个函数:
Button buttonb = (Button) this.findViewById(R.id.buttonb);
buttonb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
…
progressBar.setVisibility(View.VISIBLE);
Thread thread = new Thread() {
@Override
public void run() {
matrixOperation(sourcePhoto);
}
};
thread.start();
progressBar.setVisibility(View.INVISIBLE);
…
}
});
但在运行时我收到此错误:
Can't create handler inside thread that has not called Looper.prepare()
我搜索并发现此错误的一个原因是“您无法从后台线程执行 AsyncTask。请参阅“但这不是后台线程”的“线程规则”部分,我从我的主活动中调用它。
请告诉我如何解决这个问题。
【问题讨论】:
-
你正在开始一个话题。所以它在后台线程中运行。
-
matrixOperation()是做什么的?
标签: java android multithreading