我想从另一个类执行我的ArticleListFragment_develop.class的AsyncTask内部类的doInBackground()方法。我该怎么做呢?有人可以帮我解释一下语法吗?我尝试过一些东西,但我一直都会遇到错误。
public class ArticleListFragment_develop extends ListFragment {
........
private class DownloadXmlTask extends
AsyncTask<String, Void, ArrayList<Article>> {
/*
* @Override protected void onPreExecute() { pDialog = new
* ProgressDialog(getActivity());
* pDialog.setMessage("Loading search results...");
* pDialog.setIndeterminate(true);
* pDialog.setCanceledOnTouchOutside(false); pDialog.show(); }
*/
@Override
protected ArrayList<Article> doInBackground(String... urls) {
Log.d(TAG, "DownLoadXmlTask Thread id: "
+ Thread.currentThread().getId());
try {
return loadXmlFromNetwork(urls[0]);
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return articles;
}
答案 0 :(得分:0)
将AsyncTask写入单独的类文件中并使用它。
new DownloadXmlTask().execute();
答案 1 :(得分:0)
First read this.然后你必须对你的异步任务进行OBJECT。在您的类中编写将执行异步任务并调用它的公共方法。调用者对象必须引用您的片段对象。
答案 2 :(得分:0)
似乎您的问题是内部类AsyncTask对任何其他类都不可见。 我的建议是将AsyncTask从ArticleListFragment_develop类中取出,或者创建一个函数并从外部类调用它。