我做了一些网络的事情,我知道我不能在主线程上做。所以,我把它放到了Handler中。这是我的代码:
handler = new Handler();
handler.postDelayed(new OrderTask(this, url), 10 * 1000); // periodically run every 10 seconds.
这是我的 Runnable 类:
public class OrderTask implements Runnable {
OrderFragment fragment;
String url;
public OrderTask(OrderFragment fragment, String url) {
this.fragment = fragment;
this.url = url;
}
@Override
public void run() {
synchronized (fragment.orders) {
fragment.orders = Order.loadServerOrders(url); // network code here
}
fragment.adapter.notifyDataSetChanged();
}
}
但是当它运行时,它会抛出异常:NetworkOnMainThread
在 line loadSeverOrder
。我无法解释为什么。请帮我解决这个问题。
谢谢 :)