使用AsyncTask或Service在后台上传文件更好吗?

Roj*_*mas 6 android file-upload android-service android-asynctask

我有一个要求,即用户可以将视频上传到Amazon S3.我已经使用amazon sdk中的java高级api实现了这一点.在上传过程中,如果用户单击主页按钮,则上传必须在后台继续.

什么是更好的方法:?

*1使用AsyncTask:我尝试过使用AsyncTask,它运行正常.但是如果上传过程在后台持续很长时间间隔,操作系统会杀死应用程序以释放内存.有什么方法可以处理这种情况,让我的应用程序完成上传过程.

*2使用服务:有人建议我使用Service + ui通知.我觉得使用AsyncTask,因为它对我来说很好.使用Service over AsyncTask是否有任何优势.

Jan*_*usz 10

大多数情况下,AsyncTask耦合到您的UI,启动它的Activity等.这些将保留在内存中,直到任务完成.

您的上传方案需要通过IntentService实现.这会将上传与特定活动分离,并使您的应用在Android生命周期方面成为优秀的Android公民.

您现在可以创建从服务定期更新的通知,该通知显示上载的状态,并允许用户从其状态栏取消上载.

  • 好的Android公民..关键词.. (3认同)