在我的Application类中声明的presenter中使用静态变量是个好主意

时间:2017-01-11 07:03:52

标签: android design-patterns mvp

您好我在Android应用程序中使用MVP模式。我在应用程序类中有一些静态方法来检查连接状态。

public class AppModule extends Application {

  public static boolean isNetworkAvailable() {
        ConnectivityManager connectivityManager
                = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
        return activeNetworkInfo != null && activeNetworkInfo.isConnected();
    }
}

我在演示者中使用该应用程序级静态方法来检查互联网连接。

public class ActivityWallPresenter {

private CreatrixTestCall creatrixTestCall;

@Inject
public ActivityWallPresenter(CreatrixTestCall creatrixTestCall) {
    this.creatrixTestCall = creatrixTestCall;
}

public void loadPosts(ActivityWallFragmentContract activityWallFragment) {
    this.fragmentContract = activityWallFragment;
    if (AppModule.isNetworkAvailable()) {
        fragmentContract.showProgress();
        callWeb();
    } else {
        fragmentContract.onNetworkDisconnected();
    }
}

调用静态方法是个好主意吗?如果没有,建议我采取任何其他方法。

1 个答案:

答案 0 :(得分:3)

对于易于理解的代码,如果您使用任何public static方法,则将其写在单独的类中。

不需要在Application类中编写。

我认为Application类是开始某些事情,比如分析Multidex等,因为应用程序类是在ActivitiesServices运行之前启动的,而且我主要使用{{ 1}}用于初始化Application的类。

因此,最好为Multidex方法创建另一个类Utils.java