問題タブ [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.

0 投票する
5 に答える
1235 参照

android - Android: DatabaseRepository.kt のインスタンスを 1 つだけ作成し、それをさまざまなアクティビティで使用する方法は?

EDIT: I NEED TO PASS A CONTEXT AS A PARAMETER TO THE CLASS

(DataStorerepositoryは同じクラスです。混乱しないでください)

私には 2 つのアクティビティがAあり、Bと 1 つrepositoryです。アクティビティはアクティビティをA開きB、アクティビティBはデータをrepository( DataStoreandroid ジェットパックの一部) に保存します。

LiveDataのデータの変化を観察するために、両方のアクティビティで使用していDataStoreます。

DataStorefrom アクティビティBで新しい値を更新した後LiveData、アクティビティ内の はB期待どおりに新しい更新された値を取得します。Aしかし、アクティビティに戻るLiveDataと、古いデータが取得されます(新しい更新されたデータが期待されます)。

repository両方のアクティビティでの 2 つのインスタンスを作成しているため、それが起こっていることに気付きました。

repositoryクラスのインスタンスを 1 つだけ作成し、それを両方のアクティビティで使用するにはどうすればよいですか? それを行うためのより良い方法があれば、その解決策も歓迎されます。

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

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

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

android - ビューモデル内でフローとして DataStore 設定から値を取得する方法

SharedPreferences で解決される状況があります。しかし今、私は kotlin と DataStore に移行しています。

私はこの問題に直面しました。

他のキーと値のペアの中で、共有設定に格納されている文字列値があります。この文字列は、Retrofit 呼び出しの baseUrl パラメータで使用する URL です。

私の問題は、ViewModel で実行しているときに Fragment の値を取得する正しい方法は何かということです。

これは私のコードの一部です:

次にViewModelクラスで

しかし、単純なタスクの場合、非常に複雑なようです...

私は何が欠けていますか?私は本当に迷っています。

よろしくお願いします

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

android - Jetpack DataStore によって作成された設定ファイルを削除する方法

マルチユーザー アプリケーションがあり、DataStore を使用して各ユーザーの設定ファイルを作成しています。ユーザーが登録を解除したら、DataStore によって作成されたファイルを削除できるようにしたいと考えています。この質問を見つけましたが、ファイル内の設定のみがクリアされます。アプリケーションには複数のユーザーがいる可能性があるため、ファイル全体を削除することをお勧めします。これはどのように行うことができますか?