問題タブ [android-jetpack-datastore]
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: DatabaseRepository.kt のインスタンスを 1 つだけ作成し、それをさまざまなアクティビティで使用する方法は?
EDIT: I NEED TO PASS A CONTEXT AS A PARAMETER TO THE CLASS
(DataStore
とrepository
は同じクラスです。混乱しないでください)
私には 2 つのアクティビティがA
あり、B
と 1 つrepository
です。アクティビティはアクティビティをA
開きB
、アクティビティB
はデータをrepository
( DataStore
android ジェットパックの一部) に保存します。
LiveData
のデータの変化を観察するために、両方のアクティビティで使用していDataStore
ます。
DataStore
from アクティビティB
で新しい値を更新した後LiveData
、アクティビティ内の はB
期待どおりに新しい更新された値を取得します。A
しかし、アクティビティに戻るLiveData
と、古いデータが取得されます(新しい更新されたデータが期待されます)。
repository
両方のアクティビティでの 2 つのインスタンスを作成しているため、それが起こっていることに気付きました。
repository
クラスのインスタンスを 1 つだけ作成し、それを両方のアクティビティで使用するにはどうすればよいですか? それを行うためのより良い方法があれば、その解決策も歓迎されます。
kotlin - Android:アクティビティと別のプロセスで実行されているサービスとの間で通信する方法は?
service
とは別の でを開始しprocess
ていactivity
ます。はservice
、アプリを閉じても実行されるように設計されています。service
からを起動した後activity
、アプリを閉じます。アプリを再度開くと、service
実行されている場合と実行されていない場合があります。しかし、実行中かどうかを知る方法が見つかりservice
ません。どうすればそれを達成できますか?
参考までに: SO で関連するすべての回答を確認しましたが、サービスが別のプロセスで実行されている場合はどれも機能しません。これは私が持っている最も近い答えですlink . しかし、この答えには欠陥があるようです。それについてもあなたの意見を聞きたいです。
これが私が現在行っていることです:
AndroidManifest.xml
MainApplication.kt
(目的: SettingsRepository クラスのインスタンスを 1 つだけ持つため)
SettingsRepository.kt
(目的: サービスの実行状態を Preference DataStore に保存するため)
Service.kt
Activity.kt
ViewModel.kt
android - ビューモデル内でフローとして DataStore 設定から値を取得する方法
SharedPreferences で解決される状況があります。しかし今、私は kotlin と DataStore に移行しています。
私はこの問題に直面しました。
他のキーと値のペアの中で、共有設定に格納されている文字列値があります。この文字列は、Retrofit 呼び出しの baseUrl パラメータで使用する URL です。
私の問題は、ViewModel で実行しているときに Fragment の値を取得する正しい方法は何かということです。
これは私のコードの一部です:
次にViewModelクラスで
しかし、単純なタスクの場合、非常に複雑なようです...
私は何が欠けていますか?私は本当に迷っています。
よろしくお願いします
android - Jetpack DataStore によって作成された設定ファイルを削除する方法
マルチユーザー アプリケーションがあり、DataStore を使用して各ユーザーの設定ファイルを作成しています。ユーザーが登録を解除したら、DataStore によって作成されたファイルを削除できるようにしたいと考えています。この質問を見つけましたが、ファイル内の設定のみがクリアされます。アプリケーションには複数のユーザーがいる可能性があるため、ファイル全体を削除することをお勧めします。これはどのように行うことができますか?