gpt4 book ai didi

java - AsyncTask 在构造函数中被取消

转载 作者:行者123 更新时间:2023-11-30 04:11:10 25 4
gpt4 key购买 nike

我有一个异步任务,在执行时会立即取消。

我的类(class)是这样的:

public class JSONParser extends AsyncTask<String, Void, JSONArray> {
private ListFragment fragment;
@Override
protected JSONArray doInBackground(String... strings) {
JSONArray ja = null;
String string = "";
try {
URL url = new URL(strings[0]);
BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
string = br.readLine();

ja = new JSONArray(string);
} catch (Exception e ) {
Log.w("Special", e.toString());
}
return ja;
}

public JSONParser(ListFragment fragment) {
this.fragment = fragment;
}

@Override
protected void onPostExecute(JSONArray jsonArray) {
try {
ArrayList<HashMap<String ,String>> datalist = new ArrayList<HashMap<String, String>>();

int i = 0;
while (i < jsonArray.length()) {
HashMap<String, String> map = new HashMap<String, String>();
JSONObject tool = jsonArray.getJSONObject(i);

map.put("id", tool.getInt("Id") + "");
map.put("name", tool.getString("Name"));
datalist.add(map);
i++;
}
fragment.setListAdapter(new SimpleAdapter(fragment.getActivity(), datalist, R.layout.tools_list, new String[] {"name"}, new int[] {R.id.text}));
} catch (Exception e) {
e.getMessage();
}
}
}

从我的 fragment 中我这样调用它

AsyncTask task = new JSONParser(this).execute("http://10.0.2.2:1288/webservice/gettools.aspx");

使用调试器我可以看到,只要构造函数被调用,它就会跳到 onCancelled() 并返回。 URL 有效且有效,我在日志中没有收到任何消息,JSON 有效。

更新:我也有所需的权限,并且在进入 doInBackground() 之前调用了 OnCancelled()。永远不会调用 doInBackground()。

有什么想法吗?

我在 Android 4.0.3 上使用 IntelliJ 和 AVD。

最佳答案

您是否在您的 AndroidManifest 中设置了互联网权限?您确定在 doInBackground 中没有触发异常吗?

也许将 while (i < jsonArray.length()) 部分也放在 doInBackground 中可能是一个更好的主意 :)(为了性能)

读取字符串的代码:

BufferedReader reader = new BufferedReader(yourInputStreamReader,8);

StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}

关于java - AsyncTask 在构造函数中被取消,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10831722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com