Android活动之间切换缓慢。尝试使用进度对话框显示其加载。

3
这是个比较棘手的问题。我有一个调用http下载器的类,它是异步任务。我想在活动从网络获取所有数据时为用户提供一个“请稍等”的加载屏幕通知。但是我不知道如何调用加载屏幕。通常情况下,您会将其放在异步任务中,但我的异步任务没有视图。最好的做法是什么?
谢谢您的帮助。 我的http客户端确实有一个doInBackground()方法,所以我应该在那里放置onPreExecute()和onPostExecute()吗?但是,当主方法被移除两次时,它如何知道何时完成。
发生的情况是,当单击按钮时,它会启动活动并开始处理所有方法,但是直到所有内容都加载完成后才继续第一个活动。我不想这样,我想要进度对话框。它只是不显示。对此有何看法?
更新: 现在我把这个设置得更好了,现在至少进度对话框显示出来了。问题是异步任务并没有停止运行。
1个回答

1
你应该使用一个AsyncTask。它不需要视图,只是像线程一样的后台进程。
请参考this,了解如何正确地使用带有ProgressDialog的AsyncTask。 将你的方法放在AsyncTask的doInBackground()方法中。

好的,我按照你的建议更改了一些代码,但现在它永远不会在后台运行完成。我应该在DoinBackground方法中添加一个完成标记或其他什么吗? - MNM
哦,我不知道这是否是一个问题,但它正在调用一个 JSON 解析器,该解析器正在调用一个异步的 HTTP 客户端。 - MNM
1
如果你想在其他所有事情完成后关闭或停止任何东西,请在 onPostExecute() 方法中执行。这里的所有内容都发生在 doInBackground() 方法中的所有其他内容完成之后。 - esfox
是的,在我的类末尾我有一个,但我想知道是否从未调用另一个类。我正在朝着那个选项努力。我已经按照你建议的更新了我上面发布的代码。 - MNM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接