如何再次显示第二个屏幕

时间:2011-03-16 15:06:07

标签: android

我有一个非常简单的UI应用程序。大部分工作(图像的批量处理)都是在后台使用AsyncTask完成的。

它只有两个实体。第一个Activity(MainScreen)允许用户做出一些选择,然后激活作业。第二个屏幕(ProgressScreen)显示带有进度条和消息的作业的当前状态。

工作正常。

这是问题所在。后台任务可能需要数小时。如果用户选择“后退”按钮,则在ProgressScreen上,后台任务仍在继续。

后来如果他想回去&看到进度,没有办法做到这一点。我重新启动应用程序,它转到MainScreen,而不是ProgressScreen。我知道后台任务正在进行,因为现在我在logcat中记录了一个关于正在处理的每个图像的消息,但我没有看到回到ProgressScreen的方法。

我环顾四周,我想我需要在onStop()&amp ;; ProgressScreen的onRestart(),但不确定是什么......

我应该提一下,这个应用程序不适用于一般公众,但仅供内部使用。 (我们需要将Android完成的图像处理与其他系统完成的图像处理进行比较。)

1 个答案:

答案 0 :(得分:0)

您可以尝试将该处理逻辑放在Service内(这意味着在没有用户干预的情况下运行长时间操作)。那么,你的第二个活动怎么知道任务的进展是什么?它可以用不同的方式完成......

  • 您可以从服务主题(正在处理图片的主题)发送广播消息,并在您的活动中捕获它们。
  • 您可以在某处继续保持进度,然后定期从那里读取您的活动。
  • 如果您希望进度更多实时,您可以向服务发送ResultReceiver并让其通知该活动的进度。