首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未从ACTION_BATTERY_CHANGED更新BroadcastReceiver

未从ACTION_BATTERY_CHANGED更新BroadcastReceiver
EN

Stack Overflow用户
提问于 2018-09-13 20:10:54
回答 1查看 220关注 0票数 1

我已经创建了自定义的广播接收器来监听电池的变化(我想监控电池的百分比水平)

然而,我没有得到任何更新。下面是我的设置:

代码语言:javascript
复制
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")
    }
  }
}
EN

回答 1

Stack Overflow用户

发布于 2018-09-13 20:26:02

您将在IntentService运行的<1毫秒内收到更新。只要onHandleIntent()返回,您的IntentService就会关闭。IntentService是为短期的事务性工作而设计的,而不是长期的操作。

切换到常规Service。确保它是前台服务(使用startForeground()),否则它只会在安卓8.0+上运行1分钟。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52313498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档