問題タブ [android-architecture-components]
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.
android - Android アーキテクチャ コンポーネント: 列挙型の使用
新しい Android Architecture Components と Room Persistence Library を使用して、Enum 型を Entity クラスの埋め込みフィールドとして使用することはできますか?
私のエンティティ(Enumが埋め込まれている):
私のタイプコンバーター:
これをコンパイルすると、次のエラーが表示されますError:(52, 12) error: Entities and Pojos must have a usable public constructor. You can have an empty constructor or a constructor whose parameters match the fields (by name and type).
更新 1 私の SyncEntity クラス:
android - Android アーキテクチャ コンポーネントの LiveData と ViewModel を使用する場合、onSaveInstanceState と onRestoreInstanceState を使用する必要はありますか?
Android アーキテクチャ コンポーネントは、よりライフサイクル フレンドリで、より無駄のないアクティビティ/フラグメント向けに設計されたLiveData
およびクラスを提供します。ViewModel
これらのクラスは、構成の変更にまたがるデータの保存を処理しますが、Activity フレームワーク API と比較して、それらの使用について混乱しています。アクティビティの状態を維持するためにonSaveInstanceState(Bundle)
、まだ必要または有用ですか? onRestoreInstanceState(Bundle)
android - フラグメントの ViewModel が再度作成されます
MainFragment でビューモデルを作成します。
ユーザーがアイテムを選択してから詳細フラグメントに移動すると、このトランザクションがバックスタックに追加されます。
ユーザーが詳細フラグメントで戻ると、すべて問題ありませんが、ユーザーが詳細フラグメントでデバイスを回転させてから押すと、次のようになります。
- ViewModel の新しいインスタンスが MainFragment 用に作成されます
- 古いインスタンスはまだ生きています (メソッド onCleared は呼び出されません)
これは ViewModelProviders のバグですか? これを修正する方法は?私の意見では、ViewModel を復元する必要があります。