0

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

編集:明確にするために:DBに新しい行を挿入し、MyBroadcastReceiverによって受信されるBroadcastIntentを起動するMyIntentServiceがあるとしましょう。今私が直面している問題は、MyBroadcastReceiver のインスタンスが何らかの形でモデル クラス (シングルトン) に通知する必要があることです。問題は、このモデル (シングルトン) インスタンスは、アプリが実行されている場合にのみ使用できることです。これは、UI のみによって消費されるためです (DB のみを使用すると速度が低下します)。使用する UI がない場合、Model インスタンスに通知する必要はありません。モデルはいつでも開始されるため、BroadcastReceiver にすることはできず、シングルトンにすることもできません (私の知る限り)。

4

2 に答える 2

0

UIをブロードキャストレシーバーとして登録し、必要に応じてモデルを更新することで、これを解決しました。私のソリューションでは、UIが存在する場合、モデルは常にインスタンス化されます。

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

于 2011-07-26T08:59:48.807 に答える
0

コードなしであなたの言葉だけで答えて何かを言うのは少し難しいです。DB から「メモリ モデル」を初期化/作成するプロジェクトの別の部分を追加することができます。この部分は独立したものである必要があるため、アクティビティ/アプリケーションの開始中、またはブロードキャストを取得するときに、いつでもどこからでも使用できます。

于 2011-07-25T18:53:06.907 に答える