gpt4 book ai didi

android - 如何在 Android 上安排长时间(耗时)的操作?

转载 作者:搜寻专家 更新时间:2023-11-01 09:18:48 26 4
gpt4 key购买 nike

例如,我们在 SomeActivity 中,该 Activity 有一个按钮,用于调用将文件从一个目录移动到另一个目录(我们称之为作业)。

在黑莓手机上我会:

  1. 推送一个不可取消的弹出窗口(对话框屏幕)说“请稍候...”
  2. 启动一个线程来完成工作
  3. 在线程完成时关闭弹出窗口

这种方法 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com