2011-02-18 148 views
0

我有一個WidgetProvider,大約持續幾毫秒。它需要一個意圖,它會啓動一項服務,這可能需要相當長的時間。我想在延遲期間向用戶顯示一些內容,例如阻止用戶的進度條,但BroadcastReceiver/WidgetProvider似乎是啓動進度條的錯誤位置。在這種情況下,我應該在哪裏發佈進度條?服務可能嗎?但服務可能不是UI的一部分?Android進度對話框

+0

請爲我澄清一下:你是否開始服務只執行一項任務?爲什麼你想要顯示一個窗口小部件的進度條?我建議顯示一個「中間」狀態,以便用戶知道正在處理的內容... – WarrenFaith 2011-02-18 00:33:05

+0

不希望用戶在此服務運行時發出更多請求。 – Androider 2011-02-18 01:22:42

+0

我沒有得到它,運行一項服務的目的是爲了讓用戶處於黑暗中,那麼爲什麼需要通知用戶有關延遲完成服務任務? – GoodSp33d 2011-02-18 10:16:21

回答

1

在這種情況下,我應該在哪裏發佈進度條?

從用戶界面的角度來看,您的唯一選擇是將其放在應用程序窗口小部件中。 ProgressBar是應用程序小部件佈局中的有效小部件之一。

根據誰更新您的應用程序小部件的RemoteViews來顯示/更新/刪除ProgressBar,這可能是您的Service在任何後臺線程中使用的「顯着時間」。

1

你有沒有嘗試把通知下拉進度條?在下載應用程序時做類似市場的事情應該可以很好地工作,並且可以在後臺執行。

1

使用可以使用AsynTask來顯示進度條。