как транслировать ресивер и MVVM? - PullRequest
0 голосов
/ 11 марта 2020

мой манифест

<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

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.

1 Ответ

0 голосов
/ 11 марта 2020

Используйте свой Application класс. либо в нем есть LiveData, либо ссылка на общий ViewModel. Вы можете получить доступ к Application, используя context.getApplicationContext() из NetworkChangeReceiver

...