2017-07-15 38 views
0

如何连续从服务获取UI或MainActivity的结果。在MainActivity中获取服务结果

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

+0

请参阅[链接](https://stackoverflow.com/questions/3028306/download-a-file-with-android-and-showing-the-progress-in-a-progressdialog?rq=1) – santalu

回答

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

+0

更好的方法是使用可运行并每隔几秒更新一次进度。 – Hit4man47