2011-03-16 143 views
0

我有一個非常簡單的用戶界面應用程序。大部分工作(圖像批量處理)都是使用AsyncTask在後臺完成的。如何顯示第二屏幕再次

它只是有兩個Actvities。第一個活動(MainScreen)讓用戶做出一些選擇,然後關閉工作。第二個屏幕(ProgressScreen)通過進度條和消息顯示作業的當前狀態。

它工作正常。

這是問題所在。後臺任務可能需要幾小時。如果用戶在ProgressScreen上選擇「返回」按鈕,後臺任務仍在繼續。

後來如果他想回去&看到進展,就沒辦法去做了。它我重新啓動應用程序,它進入MainScreen,而不是ProgressScreen。我知道後臺任務正在進行,因爲現在我正在logcat中記錄有關每個正在處理的圖像的消息,但我沒有看到回到ProgressScreen的方法。

我已經看了看周圍,我想我需要把東西在ProgressScreen的的onStop()& onRestart(),但不知道是什麼......

我應該提到,這個應用程序不適合一般公開,但僅供內部使用。 (我們需要比較Android完成的圖像處理與其他系統完成的圖像處理)。

回答

0

你可以嘗試把一個Service內部的處理邏輯(這意味着可以運行,無需用戶干預長時間操作)。那麼,你的第二個活動怎麼知道這個任務的進展是什麼?它可以以不同的方式完成...

  • 您可以從服務線程(處理圖像的那個線程)發送廣播消息,並將它們捕獲到您的活動中。
  • 你可以堅持某處的進展,然後作出從那裏定期讀取您的活動。
  • 如果您希望更進一步實時,您可以發送ResultReceiver到該服務,並通知該活動的進度。
相關問題