0
我有下面的代碼,這是正在將其註冊,以接收週期性的(1每秒)廣播的一類稱爲:的Android的AsyncTask日誌記錄失敗
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();
}
但是,當我這樣做時,我什麼都得不到輸出。任何想法是什麼問題在這裏?謝謝!
爲什麼你不只是同一個線程(...)包呢? – nKn
據我所知,AsyncTask基本上是一個產生新線程的包裝器,使得該過程更容易一些。 – joshlf
除了這個在你的應用程序中還有其他的AsyncTask嗎? – nKn