0

SQLite を使用しているアプリケーションがあります。カーソルを使用したこれらのレコードから、ユーザーが取得したいオブジェクトの情報を選択するための ListActivity が表示されます。

それを押した後、余分な長いオブジェクトIDでインテントが開始されます。このインテントのターゲット アクティビティでは、オブジェクトに関する情報を取得するためにエクストラが使用されます。それで、それはデータベースを開き、オブジェクトIDを使用してすべての日付を取得します。

これは良いオプションなのか、それでアプリのパフォーマンスを向上させることができるのか、疑問に思い始めました。最初に、オブジェクトをパーセルブルに入れてこのように送信することを考えていましたが、1 つのトリッキーなことがあります - ListActivity では、ターゲット アクティビティで表示 (ダウンロード) されるすべてのフィールドがダウンロードされるわけではありません。

したがって、ListActivity のデータベースから利用可能なすべてのフィールドをダウンロードし、それを余分に渡すだけの方がよいでしょうか?

あなたは何をしますか?最良の選択肢は何ですか、おそらく他に何かありますか?

2 つの重要な情報を忘れています。FTS3 は必要ないため、通常の SQLite を使用しており、データベースには何百ものレコードを含めることができます。

4

2 に答える 2

1

DBでidによる要素の検索は非常に高速である必要があり、一度アクティビティを開始するとパフォーマンスの問題になることはありません。一方、アクティビティが id のみを取得し、すべてのデータを単独でロードする場合は、はるかにクリーンなアプローチです。もちろん、両方の方法を試して、本当にパフォーマンスが向上するかどうかを確認する必要があります。

于 2013-01-05T22:15:58.883 に答える