在我的应用程序中,我必须执行许多长时间运行的任务。通常这些访问网络,并在远程服务器上做一些事情。显然,这些都是异步任务。现在的问题是:什么被认为是通知用户正在发生的事情的用户友好方式?
我使用了一个解决方案,该解决方案会弹出一个模式对话框,其中默认的、不确定的、动画加载圆圈在任务运行时旋转。这太可怕了,用户在此期间无法与应用程序交互 - 对话框是模态的 - 而且它该死的侵入性。
你们建议什么解决方案来提供用户反馈:
A. 通过按下列表视图的列表元素上的按钮启动的异步任务?B. 通过推送菜单项启动的异步任务?(从操作栏或常规菜单中,没关系)
我希望解决方案是非侵入性的,但用户应该注意到确实发生了一些事情。
我见过的大多数应用程序都使用位于UI上某处的不确定进度条。 这样,用户可以看到某些内容正在工作,但仍可以与活动上的 UI 的所有其他部分进行交互。
对于 A,我可能会在 ListView 元素中为进度条留出空间。然后更新该项目的进度条。
对于 B,我认为带有进度条的持续通知之类的东西将是一个非常理想的解决方案。
在我的应用程序中,我必须执行许多长时间运行的任务。通常这些访问网络,并在远程服务器上做一些事情。显然,这些都是异步任务。
从描述来看,这可能不是使用 AsyncTask 是正确的方法的情况。 如果启动 AsyncTask 的应用程序活动已停止或销毁,但数据传输已完成 95%,该怎么办? 是否应该放弃进度? 交易是原子的吗?
我强烈建议观看 Virgil Dobjanschi 关于 Android REST 客户端应用程序的 Google I/O 2010 演示,其中他描述了设计一个用于处理此类数据和网络通信的应用程序。 他是Android官方Twitter应用程序的作者。