Вызов проверки состояния сети из других действий

Я понимаю, что на этот вопрос уже был дан ответ, но не смог найти ответ, который касается моего конкретного случая.

Я хочу создать класс с именем "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;
        }
    }

}

ВОПРОС: Мне нужно использовать этот код в классах, которые НЕ являются видами деятельности; на самом деле я хочу настроить этот метод в отдельном классе, который не является деятельностью. Как я могу это сделать?

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);
Другие вопросы по тегам