在Android / Glass应用程序的后台上传大文件的最佳方法是什么?我目前正在为我要上传的每个文件(照片/视频)触发异步任务,但如果异步任务崩溃或启动它的活动遇到异常,则文件上传失败。
是否有Android或Glass设计模式将文件存储在特定于应用程序的目录中,并且有一项任务可以确保上传这些文件然后从该文件夹中删除?
答案 0 :(得分:1)
使用后台服务来管理是否创建活动时可能发生的长时间运行的任务。
至于崩溃,请通过防御性编程和处理可能的异常来避免崩溃。
答案 1 :(得分:1)
根据您的要求,您应该使用后台服务(如@straya所述) https://developer.android.com/training/run-background-service/create-service.html
或者您可以使用SyncAdapter: http://developer.android.com/training/sync-adapters/creating-sync-adapter.html
如果您需要尽快上传这些文件,您将使用第一种方法,如果要将多个文件捆绑在一起并让操作系统决定何时将它们与服务器同步,则使用第二种方法(您可以指定您希望应用同步的频率。
我不知道您申请的要求,但听起来第二种方法就是您所需要的。这就是谷歌用于许多应用程序的方式,比如gmail等。实现后台服务要困难得多,但这是值得的。 Android对于同步适配器很聪明,它会尽可能地将多个适配器捆绑在一起,以保持电池消耗。