听取/接听电话状态变更 - 服务?活动?接收器?

时间:2011-11-30 05:24:16

标签: android android-activity broadcastreceiver android-service

我对Android开发还很陌生,我正在开发一个应用程序,允许用户激活和停用响应来电的功能。即如果他们打开这个功能,当他们接到电话时会发生一些事情,如果该功能被关闭,则不会发生任何异常情况。

我已经解决了TelephonyManager和PhoneStateListener的基础知识 - 我可以在启用该功能时为呼叫状态创建一个侦听器,并在禁用该功能时将其删除。启用和禁用该功能是通过UI完成的,这是一个简单的活动。

收到来电时,该功能涉及使用应用偏好中存储的数据。 如果该功能已启用,则无论应用程序是否处于活动状态,它都应运行直至关闭...理想情况下,如果启用该功能(应用程序首选项中存储的功能状态),则应在重新启动后启动。 / p>

我的问题是,实施此的最佳方法是什么?

我最初开始处理服务(通过启用/禁用该功能启动/停止)...

然后我注意到调用状态监听器在通过活动直接设置/取消设置时工作得很好,但怀疑当活动结束/垃圾收集时这可能会遇到问题......? (我不太了解Android如何处理这些事情)

我还看到了接收器 / 广播接收器的提及,这似乎是我可以使用的其他东西。乍一看,它们似乎是一个“永远在线”的东西,但我想我可以检查应用程序首选项,看看是否在收到呼叫时启用该功能......

如果启用了手机,我还没有真正考虑确保该功能在启动后启用。我还没有真正考虑过从服务/接收器访问应用程序首选项 - 应该是可能的,但是......

任何想法或建议都会很棒。代码示例或教程链接也很棒。

1 个答案:

答案 0 :(得分:0)

我和某人谈过并做了一些研究,广播接收器确实是我需要的。实际上它非常简单。

主要遵循http://www.vogella.de/articles/AndroidServices/article.html#receiver

的教程

在确定如何访问偏好时使用How to edit shared preferences in an activity other than the one it is created in?