1.) アプリケーションのすべてのデータベース操作に 1 つの Cursor を使用してもよろしいですか? いいえの場合、なぜですか?
はい。カーソルを再利用することができます。ただし、Cursor の動作は、思っているほど直感的ではないことを知っておく必要があります。カーソルは、一部のデータ ストアからすべてのデータをフェッチして、そのすべてをメモリに格納するわけではありません。代わりに、必要に応じてデータのみをフェッチするため、メモリの使用が最小限に抑えられます。そのため、再初期化する前に Cursor を閉じることを常にお勧めします。そうは言っても、必要なたびに完全に新しい Cursor を作成しても、パフォーマンスが大幅に低下することはありません。
2.)カーソルを使用するたびに開閉し続けることが本当に必要ですか?
はい、はい、はい。電話のアクティビティを定期的にローカルデータベースに同期し、後で外部サーバーに送信するネットワークアプリケーションのデバッグで多くの問題が発生したことがあります。オープンとクローズ (特にクローズ) は、FileInputStream や Socket などの Java や Android での通信の他のストリームやエンドポイントと同様に重要です。
3.) このリンクでの close() の定義は、カーソルを閉じ、すべてのリソースを再利用し、完全に無効にします。無効になるとどうなりますか?再利用可能でしょうか?
上で述べたように、close() メソッドは、Java の他のクラスの他のほとんどの close() メソッドと同じように機能します。一度呼び出したら、Cursor を再度使用しないでください。これは、Socket のクラスの close() メソッドとまったく同じです。Socket が閉じられると、それ以上ネットワークを使用することはできません (つまり、再接続または再バインドすることはできません)。新しいソケットを作成する必要があります。