让我说我在另一个我创建的线程中,在android中我执行以下操作:
//this is called from another thread (not mainTread)
new Handler(Lopper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
mAdapter.notifyDataSetChanged();
}
});
我应该理解这里的处理程序与线程有关,但是因为我正在使用mainThreads looper,它会将runnable发送到mainThreads消息队列进行处理?如果这是真的,任何线程上的任何处理程序都可以接受另一个线程looper发布到它?那是对的吗?
或者是“new Handler(Lopper.getMainLopper())”使它成为一个mainThread处理程序?
答案 0 :(得分:1)
试试这个......用Looper.getMainLooper()
替换context.getMainLooper()
。这应该有效。
new Handler(context.getMainLooper()).post(new Runnable() {
@Override
public void run() {
mAdapter.notifyDataSetChanged();
}
});
答案 1 :(得分:1)
是的,你做对了。
我建议您先看一眼this article,以便更好地理解这个问题。