gpt4 book ai didi

android - 异步任务进度对话框不会消失

转载 作者:太空狗 更新时间:2023-10-29 15:22:35 27 4
gpt4 key购买 nike

你好我正在从用户帐户加载推文以显示在 ListView 中。现在我想让用户知道他们在等待时发生了什么。我已经实现了异步任务,但由于某种原因,从未调用过 onPostExcecute。这就是永远不会删除对话框的原因。

有人可以给我提示吗..我做错了什么?

如果需要,我可以发布我的 TweetAdapterClass

这是我的异步类

public class ProgressTask extends AsyncTask<Void, Void, Void> {


@Override
protected void onPreExecute() {
dialog.setTitle("Even geduld...");
dialog.setMessage("De tweets worden ingeladen...");
dialog.show();
}

protected void onPostExecute() {
try {
if (dialog.isShowing()) {
adaptor = new TweetListAdaptor(MainActivity.this, R.layout.tweetitem, loadTweets());
setListAdapter(adaptor);
dialog.dismiss();
}
} catch (Exception e) {
}
}

@Override
protected Void doInBackground(Void... arg0) {

return null;

}
}

LoadTweets 看起来像这样:

private ArrayList<Tweets> loadTweets() {
ArrayList<Tweets> tweets = new ArrayList<Tweets>();
try {
HttpClient hc = new DefaultHttpClient();
HttpGet get = new HttpGet(
"http://search.twitter.com/search.json?q=JobXXL_be&rpp=10");
// HttpGet get = new
// HttpGet("http://search.twitter.com/search.json?q=Stijn_messiaen&rp=10");

HttpResponse rp = hc.execute(get);
if (rp.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
String result = EntityUtils.toString(rp.getEntity());
JSONObject root = new JSONObject(result);
JSONArray sessions = root.getJSONArray("results");
for (int i = 0; i < sessions.length(); i++) {
JSONObject session = sessions.getJSONObject(i);
Tweets tweet = new Tweets();
tweet.setTweet(session.getString("text"));
tweet.setUser(session.getString("from_user"));
// datum vertalen
String date = session.getString("created_at").substring(5,
16);
String[] arrDate = date.split(" ");
int id = this.getResources().getIdentifier(
arrDate[1].toString(), "string",
this.getPackageName());
String maand = getResources().getString(id);
date = arrDate[0].toString() + " " + maand + " "
+ arrDate[2].toString();

tweet.setDate(date);
tweets.add(tweet);
}
}
} catch (Exception e) {
Log.e("TwitterFeedActivity", "Error loading JSON", e);
}
return tweets;
}

编辑:我在我的 doInBackgroundMethod 中添加了 LoadTweets(),这解决了我的问题!

最佳答案

尝试在 AsyncTask 类所在的主类中声明 ProgressDialog 对话框,并且只调用 dialog.showdialog.dismiss AsyncTask 类中的方法。

关于android - 异步任务进度对话框不会消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6110422/

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