目前我使用Activity将图像上传到网络,我正在使用AsyncTask,一切都运行良好.我目前使用Activity来实现这一点,基本上该活动允许用户输入一些细节,拍照然后提交,显示进度对话框直到收到响应.当在E或G连接上时,整个过程可能非常冗长(超过一分钟).在收到回复之前,无法完成活动并返回上一个活动(这就是我想要的).
我有什么选择.目前,如果我按下主页按钮,过程正常并继续上传,应用程序可以最小化可编程性吗? .我发现这种方法存在许多问题,例如,如果活动关闭或发生错误.
我能想到的唯一方法是将实际上传代码移动到服务,使用活动收集信息并允许活动为每次上传启动新服务?然后,我可以使用notificationmanager通知用户成功或失败,并处理服务中的重试.
我注意到,当从图库共享图像到Facebook时,活动立即关闭,用户通过通知收到反馈.我假设这种方法使用服务将图像上传到Facebook?
任何帮助/建议将不胜感激.
问候
解决方法
我建议你使用以下设置:
>使用您的活动准备(配置/设置)用户想要做的事情(例如,选择他想要上传的图片和目标文件夹)
>当用户按下“发送”时,调用将执行上载任务的服务.我稍后会注意到这方面的一些优点)
>服务完成后,创建通知以显示结果.您应该使用OnGoingNotification,以便用户知道该文件正在上传(它也可以有一个进度指示器)
使用服务而不是Activity有一些优点.例如,您不必担心配置更改(例如更改设备的方向),您不会在没有任何操作的活动中“锁定”用户等.
上传不需要UI,因此使用活动不是最好的方法.
简而言之:使用服务