如何从服务调用的线程更改活动的进度条进度?

时间:2011-12-26 06:25:25

标签: java android multithreading progress-bar handler

我有一个具有进度条的活动,同一个活动产生一个服务,并且该服务产生一个处理数据并且永远不会结束的线程,但它有周期,我想反映这些周期的进度(结束)在每次迭代中的工作(真实)循环= 100%然后刷新和相同)。我该怎么用?

1 个答案:

答案 0 :(得分:1)

您有两种选择:

<强>一

使您的服务成为前台服务,然后您可以在通知区域中显示进度条。要显示进度条,您可能需要查找RemoteView。这将看起来像Android Market,它会在通知栏中显示下载进度。

详情:

Running service in Foreground How to change Notification Layout

<强>第二

这将涉及更多。你必须绑定服务。文档here会有所帮助。现在他们可能会说绑定服务不会长期存在但不是强制性的。

在这种情况下,您可以在服务中使用AsyncTask(如果您不使用,代替线程)。在onProgressUpdate AsyncTask方法中,您将向服务发布进度,然后服务将使用IPC将其发布到实际活动。以下是参考:

AsyncTask Bounded Service

你可能需要AIDL用于IPC