我已经创建了自定义的广播接收器来监听电池的变化(我想监控电池的百分比水平)
然而,我没有得到任何更新。下面是我的设置:
class MyService : IntentService("MyService") {
val receiver: PowerConnectionReceiver = PowerConnectionReceiver()
override fun onHandleIntent(intent: Intent?) {
Timber.d("Service started now")
}
override fun onCreate() {
val batteryStatus: Intent? =
IntentFilter(Intent.ACTION_BATTERY_CHANGED).let { ifilter ->
registerReceiver(receiver, ifilter)
}
}
class PowerConnectionReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
val status: Int = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1)
Timber.d("Battery changed")
}
}
}发布于 2018-09-13 20:26:02
您将在IntentService运行的<1毫秒内收到更新。只要onHandleIntent()返回,您的IntentService就会关闭。IntentService是为短期的事务性工作而设计的,而不是长期的操作。
切换到常规Service。确保它是前台服务(使用startForeground()),否则它只会在安卓8.0+上运行1分钟。
https://stackoverflow.com/questions/52313498
复制相似问题