【问题标题】:Calling a network State check from other activities从其他活动调用网络状态检查
【发布时间】:2012-09-13 07:40:54
【问题描述】:

我知道这个问题之前已经回答过,但找不到适合我的具体案例的答案。

我想创建一个名为“InternetConnectionChecks”的类来处理检查网络状态和 http 超时。我将在应用程序中调用这些方法两次(一次开始从服务器获取数据,一次结束将用户订单发送到服务器)。

为了获得良好的形式,我想将所有这些方法放在一个类中,而不是在代码中的不同点复制/粘贴。

为了检查网络状态,我使用的是 ConnectivityManager;问题是,getSystemService 需要一个扩展 Activity 的类。

package arbuckle.app;

import android.app.Activity;
import android.app.Service;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class InternetConnectionChecks extends Activity {

    public boolean isNetworkAvailable(){
        ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
        if ((activeNetworkInfo != null)&&(activeNetworkInfo.isConnected())){
            return true;
        }else{
            return false;
        }
    }

}

问题:我需要在非活动的类中使用此代码;事实上,我想在一个单独的类中设置这个方法,它不是一个活动。我该怎么做?

【问题讨论】:

    标签: android class android-activity timeout network-state


    【解决方案1】:

    使用静态方法创建 util 类

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

    }

    活动内部使用

    boolean isNetworkAvailable = Utils.isNetworkAvailable(this);
    

    【讨论】:

    • 知道了!我的差距是理解如何在活动中引用班级。
    猜你喜欢
    • 2016-01-23
    • 1970-01-01
    • 1970-01-01
    • 2015-03-25
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    相关资源
    最近更新 更多