我想知道是否可以从另一个类和/或服务调用在AsynTask类中定义的特定方法?在我的特定情况下,我有一个播放一些声音的服务,但声音是从可用声音列表中选择的……
当选择一个声音时,它是从我的家庭服务器下载的,这需要一些时间(不是很多,比方说大约3-4秒,声音/效果不大)…所以我现在的问题是,我有一个播放这些声音的服务,当我选择一个声音时,我想要显示一个进度对话框……方法(如果我理解正确的话)是使用AsyncTask,但AsyncTask唯一要做的就是告诉我的服务从我的服务器上播放一个特定的声音……所以没有从服务到Asynctask的“回调”...
我怎样才能做到这一点呢?我如何调用运行中的AsyncTask,它位于另一个类中,并告诉他所有的工作已经完成,因此他可以停止显示ProgressDialog?或者是我过度设计了它,还有其他的方法?先谢谢你...
发布于 2010-06-01 16:35:03
我每次下载都会使用一个asyncTask。下载工作在doInBackground方法中完成。您可以重写onPostExecute方法来完成下载声音后应该完成的所有工作。在您的情况下,我认为这将隐藏进度对话框,并告诉播放服务,新的音乐是可用的。
有关AsyncTask的更多信息,请查看android documentation。
发布于 2010-06-01 18:53:04
实际上,我认为你想要的恰恰相反。AsyncTask应该用于执行长时间运行的流程,而不是显示进度对话框。实际上,您不应该使用任务的后台进程来访问UI的任何部分。因此,您要做的是显示一个对话框,启动您的任务,然后让任务在其onPostExecute方法中关闭对话框,该方法可以操作UI组件。
https://stackoverflow.com/questions/2947944
复制相似问题