不同类中的 Kotlin 流程

问题描述

我有 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 (将#修改为@)