2017-01-18 6 views
0

У меня есть фрагмент, который имеет recycler view с прокруткой для обновления. При обновлении я обращаюсь к серверу и извлекаю список из db, который обновляет recycler view. Все это прекрасно работает. Мой вопрос заключается в следующем, у меня есть метод, который проверяет, есть ли у меня интернет в своей деятельности:Не abel для проверки соединения из фрагмента

public boolean isConnected(){ 
    ConnectivityManager connectivityManager = (ConnectivityManager) 
      getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); 
    return networkInfo != null && networkInfo.isConnected(); 
} 

Это прекрасно работает с моей деятельности, но когда я пытаюсь вызвать его в фрагменте "getSystemService" создает ошибку. Я попытался использовать слушателей из фрагмента для активности или просто поместить этот метод в фрагмент, и он не работает. Можно ли проверить статус Интернета внутри фрагмента или что-то, что можно сделать только с помощью активности?

+0

logcat? код способа вызова метода? Можно проверить, где у вас есть контекст. – adalPaRi

+0

Ошибка в стеке стека, пожалуйста? – xaxist

ответ

2

Если вы хотите, чтобы проверить соединение с фрагментом, вы должны получить контекст, в вашем случае активность:

public boolean isConnected(){ 
    ConnectivityManager connectivityManager = (ConnectivityManager) 
      getActivity().getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); 
    return networkInfo != null && networkInfo.isConnected(); 
} 

Или с помощью статического метода

public class Utils{ 
    public static boolean isConnected(Context context){ 
     ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); 
     return networkInfo != null && networkInfo.isConnected(); 
    } 
} 

И называют его из фрагмента с

Utils.isConnected(getActivity()); 
+0

или он может сделать статический статический метод и добавить его в некоторый класс Util – mayosk

+0

Конечно, я отредактировал свой ответ таким образом. – Yoleth

Смежные вопросы