Database 即使我使用ContentProvider,也可以在没有之前的close()消息的情况下完成游标
我使用Database 即使我使用ContentProvider,也可以在没有之前的close()消息的情况下完成游标,database,cursor,android-contentprovider,Database,Cursor,Android Contentprovider,我使用ContentProvider,但有时我会在标题中看到消息。原因是什么?我读到,如果在关闭光标之前关闭数据库,则会出现此消息。我还读到,如果我使用ContentProvider 链接:使用ContentProvider时确实不必关闭数据库,但这不适用于游标。必须使用返回光标的getContentResolver().query()。最终,您必须使用.close()关闭返回的游标,否则您将收到令人讨厌的消息。使用如下代码在严格模式下运行 StrictMode.setThre
ContentProvider
,但有时我会在标题中看到消息。原因是什么?我读到,如果在关闭光标之前关闭数据库,则会出现此消息。我还读到,如果我使用ContentProvider
链接:使用ContentProvider时确实不必关闭数据库,但这不适用于游标。必须使用返回光标的
getContentResolver().query()
。最终,您必须使用.close()
关闭返回的游标,否则您将收到令人讨厌的消息。使用如下代码在严格模式下运行
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());
这将开始产生可关闭的东西等,因此有助于调试错误产生的地方
资料来源: