Android 在后台监视SMS的有效方法,即使在应用程序执行结束后

Android 在后台监视SMS的有效方法,即使在应用程序执行结束后,android,android-intent,android-service,Android,Android Intent,Android Service,我开发了一个应用程序,其中我的要求是,我必须监控来自特定发件人的短信,该发件人在后台包含特定文本。我使用asynctask和基于sentinel的while循环相结合的方法,取得了相对成功。但是,如果我在触发短信监控后强制关闭我的应用程序,或者如果我在触发该过程后让手机闲置数小时,这将不起作用 我意识到后台服务可能是最好的方式 我的要求是: 1短信监控必须在后台完成,即使我在触发监控过程后关闭了我的应用程序 2如果我想在任何时候停用这个过程,我应该能够返回到我的应用程序,并点击一些按钮 3即使手

我开发了一个应用程序,其中我的要求是,我必须监控来自特定发件人的短信,该发件人在后台包含特定文本。我使用asynctask和基于sentinel的while循环相结合的方法,取得了相对成功。但是,如果我在触发短信监控后强制关闭我的应用程序,或者如果我在触发该过程后让手机闲置数小时,这将不起作用

我意识到后台服务可能是最好的方式

我的要求是:

1短信监控必须在后台完成,即使我在触发监控过程后关闭了我的应用程序

2如果我想在任何时候停用这个过程,我应该能够返回到我的应用程序,并点击一些按钮

3即使手机处于中间断电状态,该服务也应持续


我如何以有效的方式进行这项工作?非常感谢使用代码/伪代码的详细解决方案。

您不需要持续运行的服务来监控传入的SMS。给出了解决方案的概要。就代码而言,网站上已经有数百个SMS接收器示例。我的需求2呢?我只需打开我的应用程序并按下一个按钮,就可以停用这项服务。在触发该服务后,我如何识别该服务(可能来自同一应用程序的不同实例)?Intent服务不会持续运行。当它完成记录号码、保存消息或在收到消息时您需要它执行的任何操作时,它将自行完成。如果您的意思是要切换监视,那么有两个选项。您可以在活动中设置共享首选项值,在onReceive中读取该值,然后相应地采取行动。或者您可以使用PackageManager启用/禁用接收器。好的,我会尝试一下,如果我有进一步的疑问,会与您联系