ContentProviderClient release() 已弃用

Pra*_*ani 2 android android-contentresolver android-contentprovider contentproviderclient

我找到了一些删除数据库并使用 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();
Run Code Online (Sandbox Code Playgroud)

但在ContentProviderClient类已经release()弃用,是否有任何其他的方式来释放资源。

编辑:如果我尝试使用close(),它显示如下警告。

This ContentProviderClient should be freed up after use with #release().

许多资源,例如 TypedArrays、VelocityTrackers 等,在使用后应该回收(通过 recycle() 调用)。此 lint 检查查找丢失的 recycle() 调用。

close()显示为禁用,为什么?

在此处输入图片说明

Wir*_*ing 5

如果有人想知道代码应该是什么:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
{
    client.close();            
}
else
{
    client.release();
}
Run Code Online (Sandbox Code Playgroud)