問題タブ [android-architecture-lifecycle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1829 参照

android - ルーム Livedata.observeforever がアクティビティの再開後に機能しない

以下の単純な Room テスト コードを使用して、いくつかのテスト ケースをテストしました。メイン アクティビティの再開後、「dao.getAll().observeForever()」が機能しません。新しい単語は正しく挿入されますが、観察だけでは機能しません。dao.getAll().observe() を使用すると、常に正しく動作します。アクティビティの onCreate() メソッドで observeForever を使用することは許可されていませんか?

AppDatabase.java

}

Word.java

}

WordDao.java

}

MainActivity.java

build.gradle

0 投票する
0 に答える
822 参照

android - フラグメント間の Android ViewModel 共有

私のチームは、アプリを Android で ViewModels を使用するように移行し始めたばかりで、支援が必要です。私たちのアプリには、フラグメントに表示される建物のコレクションがあります。リスト内の建物を選択して、その建物の詳細フラグメントの詳細を表示できます。

ここで提案されている方法 (ViewModel をアクティビティにバインド) を使用して、フラグメント間でデータを共有しようとしています: https://developer.android.com/topic/libraries/architecture/viewmodel#sharing

BuildingViewModel には、建物の masterList と詳細レコードがあります。BuildingCollectionFragment には masterList にオブザーバーがあり、BuildingDetailFragment にはディテール オブジェクトにオブザーバーがあります。

私たちが直面している問題は、ナビゲートできる DetailFragment に建物が関連する建物を持つ可能性があることです。関連する建物の詳細リストで建物を選択すると、新しい BuildingDetailFragment に遷移する前に次のコードが呼び出されます

これはうまくいきます!

問題

問題は、戻るボタンを押すと、まだアクティビティにバインドされている ViewModel が、戻るボタンを押す前に見ていた建物がまだアクティブであると認識していることです。既存のリストをそのまま使用し、戻って API からデータを取得する必要がないようにしたいと考えています。