我想从你们身上反弹一些东西。
在我的移动应用程序中,我有很多Activity和Fragment类,其中许多包含一个方法或两个代码,用于将图像上传到WebAPI 2.0 Web服务等等。抱歉,仅供参考。
现在,我考虑创建一个新类(例如ServiceController),然后将所有服务调用移动到这个新类。问题是,方法的每一个都包含用于显示ProgressBar和隐藏ProgressBar的代码,并让活动继续到下一个,等等。
现在,将ServiceIntroller中调用方法的Activity实例传递给ServiceController中的方法然后执行以下操作是不错的做法:
public static void uploadImages(活动活动){ new BaseAsyncTask(){ ... ... activity.hideProgressBar(); ... }
PS:具体是" activity.hideProgressBar();"上方。
谢谢,玩得开心, 彼得
答案 0 :(得分:0)
在课程之间有很多种解耦方式,首先服务电话不应该在活动中
第一个解决方案 1)创建一个包含onsuccess,onfailure抽象方法的接口,该方法的参数将是各自的数据模型类类型 2)上述界面应该由依赖于来自服务器的数据的活动来实现。在这些实现中,显示和隐藏进度条,用数据填充UI。 3)正如您所说,将创建服务控制器实例,在创建服务控制器实例时,我们已经传递了接口的引用。这些接口用于服务控制器和活动之间的通信。
第二个解决方案
使用事件总线在服务控制器和活动之间进行通信 OTTO EVENT BUS我会更喜欢这些。
如果您有任何疑问,请告诉我,我希望这些可以解决您的问题。
第三个解决方案
使用MVP模式参考MVP Architecture Tutorial所有
的最佳解决方案