java - 如何从服务调用的线程更改 Activity 的进度条进度?

标签 java android multithreading progress-bar handler

我有一个带有进度条的 Activity ,相同的 Activity 生成一个服务,该服务生成一个正在处理数据并且永不结束的线程,但它有周期,我想反射(reflect)这些周期的进度(结束while(true) 循环的每次迭代中的工作量 = 100% 然后刷新并相同)。我应该使用什么?

最佳答案

您有两个选择:

一个

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

详情:

Running service in Foreground How to change Notification Layout

第二

这将更加涉及。您必须绑定(bind)该服务。文档 here会有帮助的。现在他们可能会说绑定(bind)服务不会长期存在,但这不是强制性的。

在这种情况下,您可以在服务中使用AsyncTask(如果您没有使用,则代替线程)。在AsyncTaskonProgressUpdate 方法中,您将把进度发布到Service,然后Service 将使用IPC 将其发布到实际 Activity 。以下为引用资料:

AsyncTask Bounded Service

您可能需要 AIDL对于IPC

关于java - 如何从服务调用的线程更改 Activity 的进度条进度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8633451/

相关文章:

java - 线程池执行器具有优先任务并避免饥饿

java - 一个键具有多个值的并发映射,并在超时时自动删除

java - 使用 mysql 将 ID_Column 值加 1

java - 在 XML 文件中搜索元素值

c++ - 英特尔 TBB 内存分配器的性能?

c# - Xamarin 表格 : how to receive images without storing anywhere locally?

java - 如何获得这个firebase值?

java - 如何在 Android 应用程序中使用 javaanpr?

java - JPA/EclipseLink 与 MySQL 的并发问题

android - 您可以跟踪不使用 Android/iOS 设备的时间吗?