Androidで固定キューを実装したいと思います。基本的には、別のスレッドがデータを取得してどこかに送信するまで、データが格納されるキューです。データの格納または消費の順序は重要ではありません(FIFO、LIFO、LILOなど)。これをサポートするAndroidには最新の図書館がありますか?Androidで固定キューを実装する方法
私はSOFの前の質問を見つけましたが、これは2012年にさかのぼる:How to realize a persistent queue on Android
Androidで固定キューを実装したいと思います。基本的には、別のスレッドがデータを取得してどこかに送信するまで、データが格納されるキューです。データの格納または消費の順序は重要ではありません(FIFO、LIFO、LILOなど)。これをサポートするAndroidには最新の図書館がありますか?Androidで固定キューを実装する方法
私はSOFの前の質問を見つけましたが、これは2012年にさかのぼる:How to realize a persistent queue on Android
これを行う方法がたくさんあります。コレクションをSQLiteのようなデータベースに保存し、ファイルとしてシリアル化し、必要に応じてデシリアライズしたり、AndroidのSharedPreferencesに保存したりすることで、コレクションを永続化することができます。
:はとにかくホークの仕組みアンドロイド
ため
セキュア、シンプルなキー値記憶があるホーク (https://github.com/orhanobut/hawk) と呼ばれるクールなライブラリがあります
Hawkのソースコードを見ると、SharedPreferencesを使ってディスクにデータを保存することがわかります。永続化するオブジェクトを直列化し、それをSharedPreferencesにStringとして保存します。
ホークのギブスのページから引用や画像を引用しています。
あなたは(「永続性」の項で)ここに他の選択肢を見つけることができます:https://github.com/codepath/android_guides/wiki/Must-Have-Libraries
あなたの徹底的な答えに感謝します。 SharedPreferencesにコレクションを保存できることは分かりませんでした。私はこれが単純なタイプのものだと思った。 SharedPreferencesに格納できるもののサイズには制限がありますか? – MadProgrammer
コレクションをSharedPreferencesに直接保存することはできません。プリミティブ型のみを保存できます。しかし、あなたはリストをシリアル化することができます(例えば、リストをjsonに変換することによって)。それをStringとして保存します。しかし、これを行うためのコードを書く必要があります。ですから、ホークのようなライブラリを使う方がいいです。いずれにしても、オブジェクトをシリアル化して格納する必要があります。とにかくコレクションが非常に大きい場合は、それをSharedPreferencesに保存しないほうがよいでしょう。それはSharedPreferencesがxmlとして保存され、大きなxmlを読み込むのが遅くなるためです。私は最も効率的な方法はSQLiteを使うことだと思いますが、それは一番簡単な方法ではありません。 – Flood2d
HawkはSharedPreferencesを使用してデータをディスクに保存します。ですからSharedPreferencesに保存することに決めたら、私はホークを使っています; – Flood2d
あなたはそれが仕事を持続し、それらの優先順位を決定するためのオプションを持っているPriority Jobqueue
チェックアウトすることができます。
なぜlifを使用しないのですか?lifo = new Stack()またはQueue fifo = new PriorityQueue(); ? – sadat
これはうまく見えますが、サービス/アクティビティが破棄された後も、どうやってPriorityQueueと言うことができますか? – MadProgrammer