У меня есть код с ASyncTask, и проблема в том, что, когда я выполняю его несколько раз, он падает с исключением: RuntimeException: только один Looper может быть создан для потока
Но тогда яПрочитайте это: https://stackoverflow.com/a/7781280/869180 и я вспомнил, что у меня была похожая ошибка в прошлом, и она была связана с пользовательским интерфейсом (в моем случае с ProgressDialog), созданным в ASyncTask.
Итак, я взялотключил все элементы пользовательского интерфейса из ASyncTask, и я также удалил Looper.prepare, чтобы избежать этого RuntimeException, но знаю, что я получаю следующее:
12-21 00:34:17.363: W/System.err(18658): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
12-21 00:34:17.371: W/System.err(18658): at android.os.Handler.<init>(Handler.java:121)
12-21 00:34:17.371: W/System.err(18658): at android.app.Activity.<init>(Activity.java:683)
12-21 00:34:17.371: W/System.err(18658): at com.konex.Alaves.Parser.<init>(Parser.java:29)
12-21 00:34:17.371: W/System.err(18658): at com.konex.Alaves.News$LoadNews.doInBackground(News.java:131)
Вот код:
private class LoadNews extends AsyncTask<String, Void, Void>
{
private List<Noticia> data = new ArrayList<Noticia>();
@Override
protected void onPreExecute() {
m_dialog.show();
}
@Override
protected Void doInBackground(String... url) {
try {
// Looper.myLooper();
// Looper.prepare();
Parser parser = new Parser(url[0], url[1]);
data = parser.run();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
m_dialog.dismiss();
if(data !=null )
showNewContent(data);
}
}
Я уверен, что что-то упустил или делаю что-то плохое, но я нигде не могу его найти.
Большое спасибо