我有一个要求,即用户能够将视频上传到 Amazon S3。我已经使用 amazon sdk 中的 java 高级 api 实现了这一点。在上传过程中,如果用户单击主页按钮,上传必须在后台继续。
什么是更好的方法:?
*1 使用 AsyncTask:我试过使用 AsyncTask,它工作正常。但是如果上传过程在后台持续很长时间,操作系统会杀死应用程序以释放内存。有什么办法可以处理这种情况,让我的应用完成上传过程。
*2 使用服务:有人建议我使用服务+用户界面通知。我喜欢使用 AsyncTask,因为它对我来说效果很好。与 AsyncTask 相比,使用 Service 有什么优势吗?
最佳答案
大多数情况下,AsyncTask 与您的 UI、启动它的 Activity 等耦合。这些将保留在内存中,直到任务完成。
您的这个上传场景请求通过 IntentService 实现.这将使上传与特定 Activity 分离,并使您的应用程序成为 Android 生命周期方面的良好 Android 公民。
您现在可以创建一个从服务定期更新的通知,显示上传状态并允许用户从他的状态栏取消上传。
关于android - 在后台上传文件是使用 AsyncTask 还是 Service 更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13706059/