【发布时间】:2015-01-05 18:53:19
【问题描述】:
我需要创建一个返回 String[] 的 AsyncTask 类,返回的 String[] 将用于创建一个列表,所以我想在 AsyncTask 类中创建 ListActivity 但 onPostExecute 方法不起作用,它是从来没有打电话。我的代码:
public class AsyncReadPrices extends AsyncTask<Object, String[], String[]>{
static String url = "http://www.mywebsite.com/";
static String ConfPath = new String();
protected String[] doInBackground(Object... params){
String[] menus = new String [(int) params[1]];
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(new URL(url+params[0]).openStream()));
String line = reader.readLine();
for (int k = 0; k < (int)params[1]; k++) {
menus[k] = line;
line = reader.readLine();
}
Log.i("check 1","");
return menus;
}
catch (IOException e){
e.printStackTrace();
}
Log.i("check 2","");
return menus;
}
@Override
protected void onPostExecute(final String[] menu) {
Log.i("It works!","");
new ListActivity(){
@Override
public void setListAdapter(ListAdapter adapter) {
Log.i("string", menu[0] );
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, menu));
}
};
}
}
【问题讨论】:
-
你能再解释一下吗?
doInBackground()会被调用吗?会不会崩溃。还有什么会/不会发生? -
AsyncTask 类被调用,doInBackground 工作,但 onPostExecute 方法没有被调用,我不知道为什么
-
不确定
new ListActivity(),但这不是创建活动的正确方法。此日志是否被调用,Log.i("It works!","");? -
不,Log.i("它有效!","");永远不会被调用,与方法相同
-
new ListActivity(){你希望这个做什么?
标签: java android networking android-asynctask