web-dev-qa-db-ja.com

ライブデータなしでViewModelを使用しても問題ありませんか

応答を待つ必要があるLiveDataクラスでAndroidViewModelを使用していますが、ローカルのshared preferenceから値をチェックする必要がある場合があります。スレッドをブロックします。

これらのシナリオでは、私はLiveDataを使用していません。これは私がactivity classで行っていることです。

 homeViewModel.sendTokenToServer().observe(this, isFCMSendToServer -> {
        Toast.makeText(this, "FCM Token Observer called", Toast.LENGTH_SHORT).show();
 });


//Without Live Data

if(homeViewModel.isUpgradeAvailable()){
     displayAlertMessage();
}

上記のアプローチが適切かどうか、またはLiveDataの各メソッドにViewModelまたは他のオブザーバーを使用する必要があるかどうかを知りたいです。

9
dev90

AFAIK ViewModelLiveDataは緊密に接続されていません。したがって、オブザーバーを使用する義務はありません。たとえば、 this サンプルアプリでは、ViewModelを使用して、向きを変更しても一部の数値を保持します。したがって、ViewModelは、方向の変更を通じて保持されるデータを格納できるコンテナー(ヘッドレスフラグメントのようなもの)として機能します。

6
Suleyman