繁体   English   中英

Android服务和asynctask通信

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM