- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
例如,我们在 SomeActivity 中,该 Activity 有一个按钮,用于调用将文件从一个目录移动到另一个目录(我们称之为作业)。
在黑莓手机上我会:
这种方法 99.99% 可以保证我们在任务结束后保持在同一屏幕上,用户只是看到弹出窗口并等待任务完成。设备旋转或任何不会破坏所需工作流程的方式。
在 Android 上,情况发生了变化。我知道可能提供了 AsyncTask 来解决我的问题。甚至还有一个很好的example应该如何使用。但是由于无法保证 Activity 实例将存在多长时间,因此应在 onSaveInstanceState 上取消 AsyncTask(并在 onRestoreInstanceState 上重新启动)。这意味着使用 AsyncTask 不能保证我们能够在开始后完全完成工作。在某些情况下,当发送用于创建用户的 http post 请求时,我不想在重新运行 AsyncTask 时遇到“此登录用户已存在”的麻烦。这是可能的,因为 AsyncTask 可以在请求已发送时被中断(并且服务器实际上正在执行其工作 - 创建新用户),但 AsyncTask 在我们收到响应之前被取消。
Android 上是否有任何解决方案来获得上述类似 BB 的行为?
最佳答案
But since there's no guarantee of how long an Activity instance will live the AsyncTask should be cancelled on onSaveInstanceState (and restarted on onRestoreInstanceState).
或者让它由服务
管理。
关于android - 如何在 Android 上安排长时间(耗时)的操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2241049/
我是一名优秀的程序员,十分优秀!