如何广播接收机和MVVM?

问题描述 投票:0回答:1

我的清单

<receiver android:name=".ui.receiver.NetworkChangeReceiver" >
            <intent-filter>
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
                <action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
            </intent-filter>
        </receiver>

和NetworkChangeReceiver类

class NetworkChangeReceiver : BroadcastReceiver() {
    override fun onReceive(context: Context?, intent: Intent?) {
        val connMgr = context?.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
        val activeNetwork: NetworkInfo? = connMgr.activeNetworkInfo
        val isConnected: Boolean? = activeNetwork?.isConnected


        if(isConnected == null) {
            Timber.d("Test Checked is Connected null ")

        } else {
            Timber.d("Test Checked Network is Connected !! ")
        }
    }
}

我将在这里检测网络。

如果mainViewModel检测到我在这里检测到的内容,我正在尝试显示图像,但我不知道该怎么办

正在使用实时数据对图像进行可视化,如果网络在此处发生变化,我想在MainView模型中更改图像的可见性。

android mvvm broadcastreceiver android-livedata
1个回答
0
投票
使用您的Application类。要么包含LiveData,要么引用共享的ViewModel。您可以从Application]中使用context.getApplicationContext()访问NetworkChangeReceiver
© www.soinside.com 2019 - 2024. All rights reserved.