加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 08:34:20 所属栏目:Java 来源:网络整理
导读:我有一个由几个活动组成的 Android应用程序.他们中的大多数人需要检查活动网络是否可用: public boolean isNetworkAvailable() { ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); TelephonyManager tm =
我有一个由几个活动组成的 Android应用程序.他们中的大多数人需要检查活动网络是否可用:

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

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

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

>每个活动都已经从android.app.Activity扩展
>我的一些活动已经从常见的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);

希望这对你有用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读