2013-09-02 5 views
0

В моем проекте у меня есть 6 видов деятельности и 4 фрагмента. Только 1 из них не использует интернет-соединение. Все кнопки, бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-блэ, используя интернет Итак, если мы посчитаем, по крайней мере 60 строк кода могут дать фатальную ошибку, если соединение отсутствует.Хорошая стратегия проверки соединения?

Использование метода checkConnection для всех этих строк звучит плохо для меня. Итак, вопрос: как и где я должен использовать эту проверку соединения? У кого-то есть хорошая стратегия?

EDIT: Моя проверка соединения очень проста. Просто проверяет, когда его вызвали, и если нет соединения; говорит «нет связи» и возвращает предыдущую активность.

+1

проверить мой ответ здесь http://stackoverflow.com/questions/17063910/need-to-run-service-while-device-got-wifi- data-connection/17064006 # 17064006 –

+0

Я посмотрю Jibran. Спасибо. –

+0

@JibranKhan Я не мог получить, где я должен использовать эти строки. IntentFilter intentFilter = новый IntentFilter(); aimFilter.addAction (WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION); registerReceiver (broadcastReceiver, intentFilter); и не нашел ничего, чтобы писать через broadcastReceiver ... –

ответ

1
public class ConnectionDetector { 

    public static boolean isConnectingToInternet(Context _context){ 
     ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE); 
      if (connectivity != null) 
      { 
       NetworkInfo[] info = connectivity.getAllNetworkInfo(); 
       if (info != null) 
        for (int i = 0; i < info.length; i++) 
         if (info[i].getState() == NetworkInfo.State.CONNECTED) 
         { 
          return true; 
         } 

      } 
      return false; 
    } 

    public static boolean isConnectedToWIFI(Context context){ 
     ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(context.CONNECTIVITY_SERVICE); 
     NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 

     if (mWifi.isConnected()) { 
      return true; 
     } 
     return false; 

    } 
} 
+0

Aah. Должно быть недоразумение. У меня есть код для проверки соединения. Мне нужна стратегия, чтобы использовать ее эффективно. –

+1

Вы можете использовать данные методы в doInBackground() ASYNCTASK всякий раз, когда вы пытаетесь получить любое значение в зависимости от Интернета. – Ritaban

+0

Хорошо. Я попробую. Спасибо @Ritaban –

1

Я хотел бы использовать метод обертку для любого веб-базовой конечной точки и записать этот код один раз там, метод должен возвращать булево или значение Enum к пользовательскому интерфейсу для Вас, чтобы справиться с этими ситуациями и сказать пользователю, что неверно, если что-то (например, отсутствие соединения, низкое соединение и т. д.)

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