2017-07-22 8 views
0

私は、さまざまなスレッドで動作する数多くのアクティビティとサービスを用意しています。たとえば、サービスはサーバーから応答を受信し、それをアクティブなアクティビティに送信します。 BUTサーバーからの応答を受け取ったときにアプリがアクティブでない可能性があります。私はどこかの場所からオブジェクトを保存しておき、再度開いたときに通知を送信し、現在アクティブなアクティビティがレスポンスを取得します。別のスレッドのアクティビティとサービスがこのオブジェクトにアクセスできるように、Androidにオブジェクトを保存するにはどうすればよいですか?

私はDBを使用することができますが、最後の応答のみを保存する必要があるため、この場合は冗長になります。私はDBを作成することを考えていましたが、ただ1つのオブジェクトに対してそうすることは全く合理的ではありません。

これを行うにはどうすればよいですか? ありがとうございます。

+0

[SharedPreferences](https: //developer.android.com/training/basics/data-storage/shared-preferences.html)? – 0X0nosugar

+0

私はこの記事([https://stackoverflow.com/questions/7057845/save-arraylist-to-sharedpreferences])の答えから、これはオブジェクトの配列をシリアル化する必要があると結論づけることができます。ベストアイデア。私は配列をApp.classの静的Listに入れる考えがあります。あなたはこのことについてどう思いますか? –

+0

個人的には、私は何とか静的変数の使用を好まない。私は[データをいくつかのファイルに保存する](https://developer.android.com/guide/topics/data/data-storage.html#filesInternal)を好むでしょう。 [this](https://stackoverflow.com/questions/40595803/android-static-variables-are-lost)のような質問は、あなたのアプローチが確実に機能しない可能性があることを示唆しています。なぜそれがうまくいかないのかの解答ではなく、誰かが静的変数を使って試してみたところ、何とか物事が期待どおりに動かなかったということではありません。 – 0X0nosugar

答えて

0

データをデータベースに格納します。たとえこれが過度のようであるとしても、これは最も簡単で最も堅牢なアプローチです。とにかくSQLiteは非常に軽量です。データを文字列またはバイトストリームにシリアル化して保存することもできますし、データの構造化スキーマを作成して複数の行、列、表などに格納することもできます。

関連する問題