当前位置: 代码迷 >> java >> Android:几个共享公共代码的活动
  详细解决方案

Android:几个共享公共代码的活动

热度:27   发布时间:2023-08-04 09:14:41.0

我有一个由几个活动组成的Android应用程序。 他们中的大多数人需要检查活动网络是否可用:

public boolean isNetworkAvailable() {
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    ...
}

我想将该代码移动到辅助类,以避免在每个Activity中编写该代码,但只允许从Activity调用getSystemService

另一种方法是将该代码移动到父活动使用继承,但是:

  1. 每个活动都已经从android.app.Activity扩展
  2. 我的一些活动已经从常见的my.package.BaseActivity扩展(Activity < - BaseActivity < - XXXActivity)

所以我不太喜欢这个想法。

在这种情况下你会推荐什么? 还有其他选择吗?

好吧,您仍然可以创建一个辅助类并将活动的引用传递给它。

public boolean isNetworkAvailable(Context c) {
    ConnectivityManager cm = (ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE);
    TelephonyManager tm = (TelephonyManager) c.getSystemService(Context.TELEPHONY_SERVICE);
    ...
}

getSystemService是一个公共方法,因此它应该在Activity范围之外工作。

您可以通过这样调用它来传递它:

helperClassObj.isNetworkAvailable(YourActivity.this);

希望这对你有用。

你不能只使用作文吗? 使用您的逻辑定义一个类,然后将该类或其实例放入需要该方法的类中。

  相关解决方案