2013-03-29 77 views
0

我只想知道我应该如何处理我的问题。 我想制作一个应用程序,从互联网上下载一些数据并保存到文件中。在下载应用程序期间应该收到包含一些重要数据的SMS消息。 我有从AlarmManager运行的服务,我有可以接收短信的BroadcastReceiver。我想知道如何从SMS接收器(BroadcastReceiver)发送数据到服务?广播接收器和服务之间的通信

回答

3

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

我会在你的地方做的是使用一个常规的服务,并承载一个本地(没有在清单中声明)广播接收器。

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

这会改变你的服务行为。您必须让它停止Self(),而intentservice是自包含的,并在完成作业时自动终止。