2012-06-11 22 views
0

我試圖搜索很多討論主題,但我不清楚這件事情。作爲新人,我無法理解一半的事情,因此我會問直接的問題。爲此任務使用服務

對於我的應用程序,當最終按鈕(開始分析按鈕)被點擊時,我想要一個服務啓動,在服務內完成的分析需要將近2-3分鐘,一旦分析完成,我想該服務自動啓動我的主要活動中出現的結果活動頁面。

該任務如何實現?我也想知道如果應用程序將在後臺運行,並且在暫停時不會被android自動關閉?

感謝

回答

1

的Android服務的定義是,它可以在後臺運行,沒有用戶界面。所以是的,這是可能的。但是,服務本身不會在後臺自動運行(它在主線程上運行)。相反,你想要做的可能是這樣的:

  • 有一個服務,它傾聽意圖說,開始操作。
  • 當用戶單擊按鈕時,將意圖發送到該服務。
  • 該服務將啓動一個新的後臺線程,做一段時間的工作。
  • 完成工作後,該服務將開始一個新的活動。 (Like this..)

注意一下,它被認爲是非常不好的做法,如果用戶沒有使用你的應用程序啓動一個新的活動。如果你使用的是一個聊天應用程序,並且一個隨機應用程序開始接管,那就太糟糕了......相反,更好的辦法是在某處插入一個標誌,然後在其他Activity的onResume()處理程序中檢查任務是否完成,以及如果是這樣,則將用戶發送給其他活動。