我有一个非常简单的UI应用程序。大部分工作(图像的批量处理)都是在后台使用AsyncTask完成的。
它只有两个实体。第一个Activity(MainScreen)允许用户做出一些选择,然后激活作业。第二个屏幕(ProgressScreen)显示带有进度条和消息的作业的当前状态。
工作正常。
这是问题所在。后台任务可能需要数小时。如果用户选择“后退”按钮,则在ProgressScreen上,后台任务仍在继续。
后来如果他想回去&看到进度,没有办法做到这一点。我重新启动应用程序,它转到MainScreen,而不是ProgressScreen。我知道后台任务正在进行,因为现在我在logcat中记录了一个关于正在处理的每个图像的消息,但我没有看到回到ProgressScreen的方法。
我环顾四周,我想我需要在onStop()&amp ;; ProgressScreen的onRestart(),但不确定是什么......
我应该提一下,这个应用程序不适用于一般公众,但仅供内部使用。 (我们需要将Android完成的图像处理与其他系统完成的图像处理进行比较。)
答案 0 :(得分:0)
您可以尝试将该处理逻辑放在Service
内(这意味着在没有用户干预的情况下运行长时间操作)。那么,你的第二个活动怎么知道任务的进展是什么?它可以用不同的方式完成......
ResultReceiver
并让其通知该活动的进度。