问题描述
我有 MutableStateFlow
的呼叫监听服务
class CallsLogListenerService : PhonestateListener() {
private val _events = MutableStateFlow<String>("INITIAL")
val events = _events.asstateFlow()
override fun onCallStateChanged(state: Int,phoneNumber: String?) {
super.onCallStateChanged(state,phoneNumber)
when (state) {
TelephonyManager.CALL_STATE_IDLE -> {
postEvent("IDLE")
Log.d("CALL STATE","Idle call")
}
TelephonyManager.CALL_STATE_OFFHOOK -> {
Log.d("CALL STATE","Off hook call")
}
TelephonyManager.CALL_STATE_RINGING -> {
postEvent("RINGING")
Log.d("CALL STATE","Ringing call")
}
}
}
fun postEvent(event: String) {
Coroutinescope(dispatchers.Main).launch {
_events.emit(event)
}
}
我有这个服务的存储库
class CallsRepositoryImpl(private val listenerService: CallsLogListenerService) {
init {
listenCallState()
}
private fun listenCallState() {
Coroutinescope(dispatchers.Main).launch {
listenerService.events.collect { Log.d("CALL STATE IN REPO",it) }
}
}
}
问题:在日志中,我只看到“INITIAL”表示存储库中的状态,而没有其他内容。但在服务课上一切正常。
所有状态都会显示我是否在 CallsLogListenerService
中收集事件(仅供测试)。
问题:stateFlow
有什么问题?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)