2

我想知道是否可以从另一个类和/或服务调用 AsynTask 类中定义的特定方法?在我的具体情况下,我有一个服务正在播放一些声音,但声音是从具有可用声音的列表中选择的......

选择声音时,它会从我的家庭服务器下载,这需要一些时间(不多,比如说大约 3-4 秒,声音/效果的大小并不大)......所以我现在的问题是我有一个播放这些声音的服务,当我选择一个时,我想显示一个进度对话框......方式(如果我理解正确的话)是使用 AsyncTask,但 AsyncTask 唯一会做的就是告诉我从我的服务器播放特定声音的服务......所以从服务到 Asynctask 没有“回调”......

我怎样才能做到这一点?如何调用位于另一个类中的正在运行的 AsyncTask,并告诉他所有工作都已完成,因此他可以停止显示 ProgressDialog ?还是我过度设计它并且还有其他方法?提前致谢...

4

2 回答 2

0

实际上,我认为你想要的恰恰相反。AsyncTask应该用于执行长时间运行的过程,而不是显示进度对话框。事实上,您不应该使用任务的后台进程来访问 UI 的任何部分。所以你要做的是显示一个对话框,启动你的任务,然后让任务在其onPostExecute方法中关闭对话框,这可以操作 UI 组件。

于 2010-06-01T10:53:04.240 回答
0

我会为每次下载使用一个 asyncTask。下载工作在 doInBackground 方法中完成。您可以覆盖 onPostExecute 方法来完成下载声音后应该完成的所有工作。在您的情况下,我认为这将隐藏进度对话框并告诉播放服务有新音乐可用。

有关 AsyncTask 的更多信息,请查看 android文档

于 2010-06-01T08:35:02.763 回答