質問

Intentserviceを作成して、新しいパッケージ(アプリの新しいアイテム)をダウンロードする予定です。私の唯一の問題は、ダウンロードの終了をブロードキャストするとき、アプリが実行されている場合、メモリモデルを更新する必要があることです。実行されていない場合は、アプリが起動時にDBからメモリモデルを作成するため、何もする必要はありません。パフォーマンス面では、UIはDBからではなく、メモリから機能します。どうやってアプローチするべきか、それとも完全に間違った軌道に乗っているのか?

編集:明確さのために:私がDBに新しい線を挿入し、MyBroadCastReceiverが受信した放送を発射するMyintentserviceを持っているとしましょう。私が直面している問題は、MyBroadCastReceiverのインスタンスが何らかの形でシングルトンであるモデルクラスに通知する必要があることです。問題は、このモデル(Singleton)インスタンスは、UIのみが消費されるため、アプリが実行されている場合にのみ使用できることです(DBのみを使用すると遅くなります)。 UIを使用するUIがない場合、モデルインスタンスに通知する必要はありません。彼らはいつでも開始されるので、私のモデルを放送局にすることはできません。彼らもシングルトンになることはできません(私が知っている限り)。

役に立ちましたか?

解決

UIレジスタをブロードキャスト受信機として使用し、必要に応じてモデルを更新することでこれを解決しました。私の解決策では、UIが存在する場合、モデルは常にインスタンス化されます。

別の解決策は、モデルがインスタンス化されているかどうかを確認し、その場合にのみ進行することです。

他のヒント

コードなしであなたの言葉だけを持っている何かを答えて言うのは少し難しいです。 DBから「メモリモデル」を初期化/作成するプロジェクトの追加の部分を作成する可能性があります。この部分は、アクティビティ/アプリケーションを開始するとき、または放送中にいつでもどこからでも使用できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top