2011-12-26 95 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