首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用SAF实现服务器(文件云)上的文件更新?

如何使用SAF实现服务器(文件云)上的文件更新?
EN

Stack Overflow用户
提问于 2016-01-18 18:59:36
回答 1查看 264关注 0票数 1

我的移动云应用程序从远程服务器获取所有内容,它应该使用Storage http://developer.android.com/guide/topics/providers/document-provider.html,并在支持SAF打开或保存的应用列表中实现DocumentsProvider http://developer.android.com/reference/android/provider/DocumentsProvider.html,以显示在第三方应用程序(如Microsoft )中。在从SAF应用程序打开文件并在第三方应用程序(例如Microsof Office )中修改它之后,这个文件应该在服务器上被覆盖,但是我在SAF框架中找不到相应的方法。

现在,我看到了实现这个目标的唯一方法:

  1. 在app文件夹或sdcard中下载一个时间位置的文件 DocumentsProvider.openDocument()
  2. 设置此文件的文件观察者(FileObserver)
  3. 捕获CLOSE_WRITE事件并尝试将修改后的文件发送到服务器
  4. 如果出现任何网络错误,或者应用程序已经重新启动,请将有关此文件的信息存储在应用程序数据库中,以便稍后发送该文件。

你能提供更简单的方法来达到预期的结果吗?或者你在我的方法中看到了一些错误。类似的功能已经在dropbox应用程序中实现。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-18 19:28:12

openDocument()返回一个ParcelFileDescriptor,如果您使用ParcelFileDescriptor.open(文件、int、Handler、OnCloseListener),那么您将得到一个对OnCloseListeneronClose()的回调-此时,您知道外部应用程序已经完成了该文件,并且可以启动一个同步操作。

代码语言:javascript
复制
// A file representing the local copy of the file
File file = ...;
return ParcelFileDescriptor.open(
    file,
    ParcelFileDescriptor.parseMode(mode),
    new Handler(), // use the current thread
    onCloseListener);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34862095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档