6000 を超えるエントリを持つデータベースがあります。この例http://eshyu.wordpress.com/2010/08/15/cursoradapter-with-alphabet-indexed-section-headers/を使用して内容を表示しています。しかし、現在、アクティビティはそれを処理できません。毎回 ANR ダイアログが表示されます。この状況を効率的に処理するにはどうすればよいですか?
1 に答える
1
各エントリを調べて、そのエントリが属するセクションのインデクサに尋ねるのは意味がありません。あなたの場合、インデクサーは6000の二分探索を行っている可能性があります。次に、その結果を30未満のエントリを持つマップに配置し、多くの上書きを実行します。
また、sectionToPosition Mapを悪用して、位置を開始するセクションを作成することもお勧めしません。
A.統計を含むテーブルを準備します。これは、大量のデータを処理するための最良の方法です。
B.データベースを使用して、各セクションのエントリ数をカウントし、posマップを開始する独自のセクションを作成できます。
SELECT UPPER(SUBSTR(LTRIM(side_a), 1, 1)), COUNT(*) FROM cards GROUP BY 1 ORDER BY 1 ASC;
于 2011-01-09T08:56:30.373 に答える