首次启动后如何强制 QueryRoots 在 Xamarin 应用程序上触发,存储提供程序
Posted
技术标签:
【中文标题】首次启动后如何强制 QueryRoots 在 Xamarin 应用程序上触发,存储提供程序【英文标题】:How to force QueryRoots to fire on Xamarin app after first launch, storage provider 【发布时间】:2021-09-23 14:46:40 【问题描述】:我正在尝试按照此处的示例实现 Xamarin 存储提供程序。
https://github.com/xamarin/monodroid-samples/tree/master/StorageProvider
问题是我希望用户在呈现根文件夹之前登录。
查询根的方法如下:
public override ICursor QueryRoots(string[] projection)
这是在应用首次启动时调用的,但随后似乎不会调用。
如果我立即登录(硬编码凭据),这可以正常工作。但是,如果我打开应用程序以便手动添加一些登录详细信息,则不会再次调用它,因此不会重新呈现正确的根。
有没有人知道我如何强制 android 再次调用此方法以刷新此列表?
【问题讨论】:
【参考方案1】:你可以尝试调用下面的方法来通知系统我们的root的状态已经改变了
Activity.ContentResolver.NotifyChange (DocumentsContract.BuildRootsUri (AUTHORITY), null, false);
你可以在这里看到解释https://github.com/xamarin/monodroid-samples/blob/0b301e8fd2da65ff442b5f1ed236c73ba3b963c2/StorageProvider/MyCloudFragment.cs#L66。
【讨论】:
谢谢,太好了,这正是我需要的。以上是关于首次启动后如何强制 QueryRoots 在 Xamarin 应用程序上触发,存储提供程序的主要内容,如果未能解决你的问题,请参考以下文章
## 分布式事务面试官问我:MySQL中的XA事务崩溃了如何恢复??
首次启动应用程序 Xcode 11 iOS 13 后如何使入职场景消失
Websphere MQ 作为 txn 协调器:- 由于 db2 无法启动 xa,MQ.begin() 在 mq 退出后失败