- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我找到了一些删除数据库并使用 ContentProvider 重新创建它的解决方案。
ContentResolver resolver = mContext.getContentResolver();
ContentProviderClient client = resolver.acquireContentProviderClient(KOOPSContentProvider.AUTHORITY);
assert client != null;
KOOPSContentProvider provider = (KOOPSContentProvider) client.getLocalContentProvider();
assert provider != null;
provider.resetDatabase();
client.release();
但是在 ContentProviderClient 类中有 release()
是deprecated,有没有其他方法可以释放资源。
编辑:如果我尝试使用 close(),它会显示如下警告。
This ContentProviderClient should be freed up after use with #release().
Many resources, such as TypedArrays, VelocityTrackers, etc., should be recycled (with a recycle() call) after use. This lint check looks for missing recycle() calls.
和close()显示为禁用,为什么?
最佳答案
如果有人想知道代码应该是什么:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
{
client.close();
}
else
{
client.release();
}
关于android - ContentProviderClient release() 弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42264803/
我找到了一些删除数据库并使用 ContentProvider 重新创建它的解决方案。 ContentResolver resolver = mContext.getContentRes
使用通过 ContentResolver#acquireContentProviderClient(...) 获得的 ContentProviderClient 与 ContentResolver#a
documentation on Android content providers描述了使用从 getContentResolver() 获得的 ContentResolver 来访问内容。 不过还
这几天我一直在为一个问题苦苦挣扎。我正在与两个不同的应用程序(应用程序 A 和应用程序 B)共享一个内容提供者。所有关于数据库创建和内容提供者管理的事情都由应用程序 A 完成。应用程序 B 只需使用相
据我从文档中了解到,在 SyncService 中定义的一个 SyncAdapter 仅限于接收一个 ContentProvider 权限来处理。 但是,与此同时,它可以访问 ContentResol
我是一名优秀的程序员,十分优秀!