3

使っContentProviderていますが、タイトルにメッセージが書いてあることがあります。理由は何ですか?カーソルを閉じる前にデータベースを閉じると、このメッセージが表示されることを読みました。また、使用する場合はカーソルを閉じる必要がないことも読みましたContentProvider

リンク:ContentProviderでデータベースを閉じる

4

2 に答える 2

5

ContentProviderを使用するときにデータベースを閉じる必要がないのは事実ですが、これはカーソルには当てはまりません。getContentResolver().query()カーソルを返すを使用している必要があります。最終的には、返されたカーソルをで閉じる必要があり.close()ます。そうしないと、厄介なメッセージが表示されます。

于 2013-03-26T21:17:34.660 に答える
0

厳密モードで実行するには、次のようなコードを使用します

         StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
             .detectDiskReads()
             .detectDiskWrites()
             .detectNetwork()   // or .detectAll() for all detectable problems
             .penaltyLog()
             .build());
     StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
             .detectLeakedSqlLiteObjects()
             .detectLeakedClosableObjects()
             .penaltyLog()
             .penaltyDeath()
             .build());

これにより、閉じ可能なものなどの生成が開始されます。したがって、エラーが発生した場所のデバッグに役立ちます。

ソース:https ://developer.android.com/reference/android/os/StrictMode.html

于 2017-02-02T14:20:09.343 に答える