如何广播Receiver和MVVM? [英] how to broadcast Receiver and MVVM?
问题描述
我的清单
<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类
and NetworkChangeReceiver Class
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 !! ")
}
}
}
我要在这里检测网络.
I going to detect the network here.
如果mainViewModel检测到我在这里检测到的内容,则尝试显示图像,但我不知道该怎么做
If my mainViewModel detects what I've detected here, I'm trying to bring up an image, but I don't know what to do
正在使用实时数据对图像进行可视化,如果此处的网络发生变化,我想在MainView模型中更改图像的可见性.
Image is being visualized using live data and if the network changes here, I want to change the visibility of the image in my MainView Model.
推荐答案
使用您的Application
类.在其中包含LiveData
或对共享ViewModel
的引用.
您可以从NetworkChangeReceiver
Use your Application
class. either have a LiveData
in it or a reference to a shared ViewModel
.
You can access Application
using context.getApplicationContext()
from NetworkChangeReceiver
这篇关于如何广播Receiver和MVVM?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!