[英]Android service and asynctask communication
我试图找出按照Android最佳做法完成简单应用的最佳方法时遇到问题。 这是场景:
1)我有一个用户输入内容的活动,然后发送到后台服务
2)后台服务对输入执行一些检查,并生成一个新的AsyncTask来处理输入。
3) asynctask使用其进度和状态更新服务中的Status Hashmap
4) 有一个第二个活动绑定到服务,以显示服务中当前正在运行的任务列表及其进度。 这个想法是,即使关闭此活动,服务仍将继续运行任务,并且当重新打开活动时,将显示刷新的统计信息。
我在3和4中遇到问题。在AsyncTask的onProgressUpdate方法中与服务进行通信的最佳方式是什么,同时更新列表活动如果打开,如果没有打开它更简单,只需更新服务跟踪映射当活动打开时,它会读取并更新。
我不确定处理那种“事件”的标准方法是什么。 为了这个简单的目的,你是否必须使用广播监听器和用户或它太多?
如果要在服务和活动之间进行通信,可以在AsyncTask.onProgressUpdate
方法中(或者在AsyncTask.onPostExecute(Result)
方法中)从服务广播更新,并使用活动中的广播接收器监听更新。
而不是我复制和粘贴很多代码,请查看Vogella的服务教程,特别是练习(7.练习:使用服务和服务通信),在这里找到
www.vogella.com/tutorials/AndroidServices/article.html#tutorial_intentservice
在练习中,您正在寻找DownloadService.publishResults(...)
方法,该方法从服务向广播接收者正在侦听更新发送广播,并在MainActivity中使用BroadcastReceiver,后者处理来自服务。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.