所以我关注了这个guideline收到短信时显示一个简单的 toast 。虽然它在应用程序运行时工作正常,但当我进入设置并强制关闭应用程序时,它停止工作。
我在 StackOverflow 上检查了很多类似问题的答案,但没有人真正回答是否(以及如何)在每次收到 SMS 时都执行一段代码,而无需将应用程序设置为默认的 SMS 应用程序设备(Android 4.4+)。是吗?
考虑到甚至可以停止服务,当这种情况发生时,服务就不再是解决方案了。
我对 API 级别 19+ 感兴趣
谢谢
最佳答案
很遗憾,不,如果您的应用不是默认的 SMS 应用,这实际上是不可能的。
当用户强行关闭您的应用程序时,它会回到已停止状态,并且为隐式 SMS_RECEIVED
广播静态注册的接收器将无法工作,直到您应用程序已再次明确启动;例如,用户通过显式启动器快捷方式启动您的应用。
另一方面,默认的 SMS 应用程序将通过 SMS_DELIVER
广播进行传送,这是明确的。即使默认已被强制停止,该广播也会像任何其他显式启动 Intent
一样将其从 stopped 状态中带出。
如果及时性不是主要问题,您可以根据需要查询 SMS 提供程序 - 例如,在每次启动时 - 并确定自上次检查以来您是否错过了任何新消息。
关于android - 非默认 SMS 应用程序在收到 SMS 时能否始终接收广播,即使在强制关闭时也是如此?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34012158/