6

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

什么是更好的方法:?

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

*2 使用服务:有人建议我使用服务 + ui 通知。我喜欢使用 AsyncTask,因为它对我来说很好用。使用服务而不是 AsyncTask 有什么优势吗?

4

1 回答 1

10

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

你的这个上传场景需要通过IntentService来实现。这将使上传与特定活动分离,并使您的应用在 Android 生命周期方面成为良好的 Android 公民。

您现在可以创建一个定期从服务更新的通知,该通知显示上传状态,并允许用户从他的状态栏中取消上传。

于 2012-12-04T15:22:00.300 回答