2011-12-26 97 views
0

我有一個活動,有一個進度條,同一個活動產生一個服務,並且該服務產生一個正在處理數據並永不結束的線程,但它有循環,我想反映這些循環的進度(結束在每次迭代中工作(真)循環= 100%,然後刷新和相同)。我應該使用什麼?如何從服務調用的線程更改活動的進度條進度?

+0

您的服務可具有可顯示在進度條UI。 – havexz 2011-12-26 06:41:04

+0

@havexz對不起,我不明白,我認爲只有活動可以顯示用戶界面。 – Miky 2011-12-26 07:28:03

+0

讓我澄清一下,您的服務可以在通知欄中顯示進度條。下面是更詳細的.. – havexz 2011-12-26 18:16:11

回答

1

你有兩個選擇:

一個

讓您的服務前臺服務,然後就可以顯示在通知區域中的進度條。要顯示進度條,您可能需要查找RemoteViews。這看起來像Android Market,它在通知欄中顯示下載進度。

詳情:

Running service in Foreground How to change Notification Layout

這將是更加引人入勝。你必須綁定到服務。文檔here將有所幫助。現在他們可能會說Bound服務不會長期居住,但它不是強制性的。

在這種情況下,您可以在服務中使用AsyncTask(如果您不使用線代替線程)。在AsyncTaskonProgressUpdate方法中,您將發佈進度到服務,然後服務將使用IPC將其發佈到實際活動。下面是裁判:

AsyncTask Bounded Service

,你可能需要AIDL爲IPC