2012-04-25 12 views
0

私はウェブサイト用のアンドロイドアプリケーションを開発中です。それは約100000人のユーザーがいます。これらのユーザーをカスタムユーザー検索用のArraylistにフェッチする必要があります。これは、Arraylist(特にアンドロイド)にこのような大量のデータを保存するのがよい方法でしょうか。私はSqliteデータベースの任意の提案を使用する予定ですか?android arraylist多数の文字列オブジェクト

+0

データベースオプションが優れています! –

+0

オブジェクトをファイルに保存するのはどうですか? – ngesh

+1

どこからそれらをフェッチしていますか? –

答えて

1

あなたがデータベース取得し、パッティングのデータを使用している場合は別のタスク...格納したファイルオブジェクトなので...データクラスを作成し、それはSerializableを作成し、ファイルストレージを使用するには、データ処理のためのより良い..です

+0

私はファイルストレージに慣れていません。ローカルストレージにはxmlファイルを使用する必要がありますか? –

+0

@ileaf ..本当に..オブジェクトを格納するための直接APIがあります。オブジェクトを渡す必要があります...グーグルでは多くのチュートリアルを提供します.. – ngesh

1

それはと思われますコンテンツをArrayListに格納することはお勧めできません。データやアプリケーションによっては、「OutOfMemory」エラーが発生することがあります。情報をSQLiteのデータベースやファイルに保存してみてください。

一方、私は1 lakhのユーザーデータを一括してダウンロードし、それをデバイス上で検索するためにローカルに保存する必要はありません。あなたは検索を行い、検索結果のみを返すサービスをすることができます。これが可能であれば、それをArrayListに格納することは悪くありません。 arraylistのサイズがDVMで許容される量を超える場合は、onLowMemoryコールバックをオーバーライドしてリストの内容を空にすることができます。このようにすれば、あなたのアプリが殺されるのを防ぐことができます

3

あなたはどんなタイプのリストも使いたくありません。

データベースは、大量のデータを格納して検索するように最適化されています。これらのユーザー名をArrayListに格納すると、効率的に検索する必要があります。

最初は貧弱な考えです。なぜあなたはすべての1lakh +ユーザ名のローカルコピーを持ちたいのですか?これは帯域幅のひどい浪費です!アプリケーションが検索しているユーザー名をデータベースに照会できる方が良いでしょう。結果はクライアントにのみ保存できます。

ex: SELECT * FROM `user` WHERE `name` LIKE "david" 

クエリの結果のみを保存します。すべてのユーザーではありません。

+0

これも私は検討しています。しかし、各キーワードについて、対応する一致を取得するためにサーバーに移動する必要があります。それは私がローカルストレージを好む理由です。 –

+1

+1 @ The RealKingK。実際に100000人のユーザーがいる場合は、これが最適です。 – Dharmendra

+0

また、文字を入力するとサーバーに接続し、すぐに2文字目を入力すると最初の要求が停止し、2回目の要求でサーバーに接続する必要があるというメカニズムも必要です。 – Dharmendra

関連する問題