Cursor
に関する質問があります。アンドロイドのカーソルが閉じない不都合
私はCursor
を閉じないとどのような欠点があるか知りたいですか?
リソースの割り当てを解除しますが、どのリソースが割り当て解除されますか?
Cursor
を閉じることはできませんか?どのような影響がありますか?
Cursor
を閉じないと、Activity
ビットには影響しませんが、ログcatにエラーが発生します。
Cursor
に関する質問があります。アンドロイドのカーソルが閉じない不都合
私はCursor
を閉じないとどのような欠点があるか知りたいですか?
リソースの割り当てを解除しますが、どのリソースが割り当て解除されますか?
Cursor
を閉じることはできませんか?どのような影響がありますか?
Cursor
を閉じないと、Activity
ビットには影響しませんが、ログcatにエラーが発生します。
カーソルを閉じないと、データベースが開いている間に、アクティビティが一時停止されたような何かが発生した場合にアクセスできなくなるため、データベースのデータにアクセスする際に問題が発生します。具体的には、アクティビティで管理するようにすると、この問題は緩和されます。
Cursor
を閉じると、メモリリークの可能性が回避されますので、YESこれらは、使用しなくなった時点で必ず閉じてください。
カーソルはインターフェイスに過ぎません。多くの実装に依存し、クリーンアップを取得してかなりの数のものがあるSQLiteCursorの場合は具体的にどのようなあなたが使用しているインターフェイスを実装するクラス...
(これはフローズンヨーグルトからです):
@Override
public void close() {
super.close();
deactivateCommon();
mQuery.close();
mDriver.cursorClosed();
}
は、データがまだ一貫している必要があり、あなたのカーソルを閉じていない、しかし、あなたは私はあなたが1カーソルを閉め忘れから多くの問題を参照してくださいよとは思わない
...メモリリークが発生しようとしています。問題(これはほぼすべてのメモリリークに適用されます)は、何度も何度もやり続けると、最終的に何か悪いことが起こるということです。
たとえば、デバイスのSQLite DBからサーバーにデータをアップロードするアプリケーションを作成しました。私がデータベースからの読み書きを終えるたびにカーソルを閉じることができなければ、最終的にはメモリ不足のエラーやその他のさまざまな問題が発生します。
私はコードを閉じてデータを正しく表示しています。データにアクセスしていて、アプリケーションが正常に実行されています。 logcatでエラーが発生しています。カーソルのファイナライズが無効化されていないか閉じる – Haris
manageCursor(X)を使用して、カーソルの意味を制御するアクティビティを使用しましたか? – JoxTraex
いいえ、それはmanageを使わずに作業しています – Haris