Вызов проверки состояния сети из других действий
Я понимаю, что на этот вопрос уже был дан ответ, но не смог найти ответ, который касается моего конкретного случая.
Я хочу создать класс с именем "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);