У меня есть приложение для Android с виджетами, которые должны анализировать некоторые rss и получать некоторые данные. Вот мой OnReceive метод:Android-виджет asynctask
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context,intent);
if (intent.getAction().equals(ACTION_TOAST)) {
new RetrieveTask().execute(context);
}
}
И асинхронной сам метод:
class RetrieveTask extends AsyncTask<Context,Void, List<String>> {
private Exception exception;
private Context context;
private RemoteViews views;
@Override
protected List<String> doInBackground(Context... params) {
List<String> output = new ArrayList<String>();
try {
int k = 15;
doc = Jsoup.connect("http://vlg-media.ru/transport").get();
String img = "";
int i = 0;
Title = doc.select(".art_img");
for (Element titles : Title) {
String IMG = URL;
String HREF;
//Element Img = titles.select(".art_image").first();
IMG = "http://vlg-media.ru" + titles.select("img").attr("src").toString();
IMG = IMG.replace("small", "medium");
HREF = "http://vlg-media.ru" + titles.select("a").attr("href").toString();
// Element Title = titles.select(".con_titlelink").first();
String title = titles.select("img").attr("alt").toString();
m = new HashMap<String, Object>();
m.put(ATTRIBUTE_NAME_TITLE, title);
//добавление данных в наш контейнер
data.add(m);
publishProgress();
i++;
//}
if (i == k)
break;
}
//}
} catch (Exception ex) {
this.exception = ex;
return null;
}
return output;
}
protected void onPostExecute(List<String> output) {
//to make sure it run
Toast.makeText(context,"Done",Toast.LENGTH_LONG).show();
}
}
После doInBackground ничего не происходит. onPostExecute никогда не запускается. Мне просто нужно запустить асинхронный парсер в моем приложении AppWidgetProvider. Не знаю, где проблема.
Так что, я действительно это нужно? Я не уверен. Это причина, почему doInBackground никогда не запускается? – TooLazy
Вы сказали, что 'onPostExecute' никогда не запускается. Что происходит, вы добавляете '@ Override' в' onPostExecute'? – Blackbelt