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

时间:2010-07-02 15:16:38

标签: java android

我有一个由几个活动组成的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. 扩展
  3. 我的一些活动已经从常见的my.package.BaseActivity(Activity< - BaseActivity< - XXXActivity)
  4. 扩展而来。

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

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

2 个答案:

答案 0 :(得分:7)

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

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);

希望这适合你。

答案 1 :(得分:0)

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

相关问题