广播接收器和服务之间的通信

时间:2013-03-29 21:59:50

标签: android service broadcastreceiver intentservice

我只是想知道我应该寻找什么来解决我的问题。 我想创建一个从Internet下载一些数据并将其保存到文件的应用程序。在下载应用程序期间应该接收应包含一些重要数据的SMS消息。 我有从AlarmManager运行的服务,我有可以接收短信的BroadcastReceiver。我想知道如何从SMS接收器(BroadcastReceiver)向服务发送数据?

1 个答案:

答案 0 :(得分:3)

您在问题中添加了IntentService标记,因此我假设您正在使用意向服务来执行请求。

我要做的就是使用常规服务并在其中托管本地(未在清单中声明)广播接收器。

然后,您可以在服务本身托管的其他线程中执行下载。通过这种方式,您可以从广播接收器访问Service类,如果将下载程序thread / asynctask设置为内部类,则可以让它们进行通信。

这会改变您服务的行为。你必须让它stopSelf(),而intentservice是自包含的,并在完成它的工作时自动死亡。