java - 我如何知道我的服务何时从广播接收器与 Android 调用?

标签 java android android-intent android-service android-broadcast

因此,我的应用程序有一项服务,如果用户打开它,该服务就会始终运行。它使用广播接收器监听 USER_PRESENT 以显示消息。它只应该显示解锁消息。

问题是,当 Android 内存不足并终止它,然后重新启动它时,即使用户尚未解锁其设备,它也会再次显示该消息。有没有办法知道谁调用了该服务?

我使用 service.START_NOT_STICKY,但是 service.START_STICKY 是否更适合这项工作?我想我并不完全理解这些差异,但我很确定我想要 NOT_STICKY

最佳答案

您可以在调用接收方时将intent中的action字段设置为特定字符串,然后在onReceieve中检查它。

如果它有你的字符串,那么你就调用了它,否则是其他人。

关于java - 我如何知道我的服务何时从广播接收器与 Android 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20151949/

相关文章:

java - 使用 Intent 返回上一页而不是进入上一页...

java - 无法从getApplication()将异常MultiDexApplication强制转换为类

java - Hibernate - 如果没有关联,Hibernate 是否使用代理对象?

android - 使用Android Management API创建企业时如何获取enterpriseToken?

android listview 滚动到顶部

android - 如何用 espresso 测试 DeepLinks

java - SLF4J-API 类加载如何优先考虑绑定(bind)而不是虚拟?

java - Apache CXF 网络服务中的文档样式

android - 使用 go-gcm 发送 XMPP 推送通知时正确的错误处理?

android - 从我的 Android 应用程序以编程方式打开选定的文件(图像、pdf、...)?