如何持续从服务获取UI或MainActivity的结果。?
我正在使用服务复制一些大文件,我想更新Foreground中的进度条。
答案 0 :(得分:0)
最简单的方法是将Singleton对象与侦听器一起使用。 订阅活动更新,只需在服务中设置值。
public class ProgressSingleton {
private static ProgressSingleton instance;
private ProgressListener progressListener = null;
public static void initInstance() {
if (instance == null) {
instance = new ProgressSingleton();
}
}
public static ProgressSingleton getInstance() {
return instance;
}
private ProgressSingleton() {
}
public void setProgress(int progress) {
if (progressListener != null) {
progressListener.onProgressUpdated(progress);
}
}
public interface ProgressListener {
void onProgressUpdated(int progress);
}
}
确保您在UI线程中处理来自侦听器的更新。 您也可以在前台启动服务,这是大文件的最佳选择。