【发布时间】:2020-03-01 23:20:52
【问题描述】:
我在 Android 的开发者说明中进行了详尽的搜索,但无法找到如何在插入设备时执行特定操作,以及在拔出设备时执行其他操作。
我已尝试设置如下所示的广播接收器,但它不会运行:
<receiver android:name=".PowerConnectionReceiver">
<intent-filter>
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
</intent-filter>
</receiver>
我了解到,从 API 26 起,您将无法再接收清单中注册的某些广播,必须动态注册它们。
我需要在后台运行它,但不知道怎么做?这篇2019年更新的文章(api 26之后)暗示我应该可以做到。
充电状态可以像插入设备一样轻松更改,因此监控充电状态的变化并相应地更改刷新率非常重要。
每当设备连接或断开电源时,BatteryManager 都会广播一个操作。接收这些事件很重要即使您的应用没有运行,特别是因为这些事件会影响您启动应用的频率以启动后台更新,因此您应该在清单中注册一个 BroadcastReceiver 以监听这两个事件通过在意图过滤器中定义 ACTION_POWER_CONNECTED 和 ACTION_POWER_DISCONNECTED。
我的最终目标是在插入或拔出设备时调用广播接收器。
我将如何实施?
【问题讨论】:
-
你需要通过代码注册这个接收器
-
但这不允许我从后台获取意图。它只会让活动的意图是活着的。
标签: java android broadcastreceiver