我有以下代码,该代码在注册为接收定期(每秒 1 个)广播的类中调用:
public void onReceive(Context c, Intent i) {
Log.d("NET", "Polling server...");
try {
Request.getChanges();
} catch (Exception e) {
Log.w("NET", "Error polling server: " + e.toString());
}
}
但是,由于此代码作为 BroadcastReceiver 被触发,因此在 UI 线程中运行,我得到:
Error polling server: android.os.NetworkOnMainThreadException
所以我决定在 AsyncTask 中尝试一下:
public void onReceive(Context c, Intent i) {
class Task extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... arg0) {
Log.d("NET", "Polling server...");
try {
Request.getChanges();
} catch (Exception e) {
Log.w("NET", "Error polling server: " + e.toString());
}
return null;
}
}
new Task().execute();
}
但是,当我这样做时,我没有得到任何输出。知道这里有什么问题吗?谢谢!