在 MainActivity 中获取服务结果

Getting results of service in MainActivity

如何连续从服务获取结果到UI或MainActivity。?

我正在使用服务复制一些大文件,我想更新前台的进度条。

最简单的方法是使用带有侦听器的单例对象。 在 activity 中订阅更新并在服务中设置值。

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 线程中处理来自侦听器的更新。 您也可以在前台启动服务,大文件的最佳选择。