我有一个由几个活动组成的Android应用程序。他们中的大多数人需要检查活动网络是否可用:
public boolean isNetworkAvailable() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
...
}
我想将该代码移到辅助类中,以避免在每个Activity中编写该代码,但只允许从Activity调用getSystemService
。
另一种方法是将该代码移动到父活动使用继承,但是:
所以我不太喜欢这个想法。
在这种情况下你会推荐什么?还有其他选择吗?
答案 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)
你不能只使用作文吗?使用您的逻辑定义一个类,然后将该类或其实例放入需要该方法的类中。