2

回避できる状況に遭遇しましたが、より良い方法を探しています。それは:

  • Android デバイスには 8,000 以上の曲があります。つまり、Android の Audio.Media には 8,000 行以上あります。
  • つまり、2,000 個のパスを持つ配列があり、対応するファイルの他の列についてデータベースにクエリを実行する必要があります。

今では私は使用しますresolver.query(URI, "_data IN (?,?,?........,?)", selectionArgs, null);

ただし、?600 以上のように多すぎると、WHERE 句が長くなりすぎてクエリが失敗します。

そこで、2,000 のパスを 4 つの部分に分割し、それぞれにクエリを実行して、必要な情報を別の場所に保存します。4 回のクエリで、結果を取得できます。しかし、これは大量のメモリを消費し、1 つのクエリで実行できれば、4 よりも高速になります。

誰かがこれを行うためのより良い方法を持っていますか? ありがとうございました!

4

0 に答える 0