回避できる状況に遭遇しましたが、より良い方法を探しています。それは:
- 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 よりも高速になります。
誰かがこれを行うためのより良い方法を持っていますか? ありがとうございました!