良好实践 - 在实例上传递实例和调用方法

时间:2016-04-16 13:03:32

标签: java android android-studio

我想从你们身上反弹一些东西。

在我的移动应用程序中,我有很多Activity和Fragment类,其中许多包含一个方法或两个代码,用于将图像上传到WebAPI 2.0 Web服务等等。抱歉,仅供参考。

现在,我考虑创建一个新类(例如ServiceController),然后将所有服务调用移动到这个新类。问题是,方法的每一个都包含用于显示ProgressBar和隐藏ProgressBar的代码,并让活动继续到下一个,等等。

现在,将ServiceIntroller中调用方法的Activity实例传递给ServiceController中的方法然后执行以下操作是不错的做法:

public static void uploadImages(活动活动){     new BaseAsyncTask(){         ...         ...         activity.hideProgressBar();         ... }

PS:具体是" activity.hideProgressBar();"上方。

谢谢,玩得开心, 彼得

1 个答案:

答案 0 :(得分:0)

在课程之间有很多种解耦方式,首先服务电话不应该在活动中

第一个解决方案  1)创建一个包含onsuccess,onfailure抽象方法的接口,该方法的参数将是各自的数据模型类类型 2)上述界面应该由依赖于来自服务器的数据的活动来实现。在这些实现中,显示和隐藏进度条,用数据填充UI。 3)正如您所说,将创建服务控制器实例,在创建服务控制器实例时,我们已经传递了接口的引用。这些接口用于服务控制器和活动之间的通信。

第二个解决方案

使用事件总线在服务控制器和活动之间进行通信 OTTO EVENT BUS我会更喜欢这些。

如果您有任何疑问,请告诉我,我希望这些可以解决您的问题。

第三个解决方案

使用MVP模式参考MVP Architecture Tutorial所有

的最佳解决方案