2010-09-13 4 views
0

Я проверяю, чтобы увидеть, если мое приложение имеет сетевое подключение:Сетевое соединение теряется каждый раз, когда создается действие?

public boolean isOnline(){ 
     ConnectivityManager conMgr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 

     if (conMgr.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED 
      || conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTING ) { 

      return true; 

     } 
     else if (conMgr.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED 
      || conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED) { 
      return false; 

     } else {return false;} 
    } 

Всякий раз, когда я поворачиваю мой экран между альбомной и портретной этот метод возвращает ложь. Это заставляет меня задаться вопросом, убиты ли сетевые соединения во время ротации?

ответ

0

Нет ... ваши сетевые соединения не погибают во время вращения. Вероятно, происходит то, что вы не сохраняете логическое значение состояния соединения, поэтому, когда телефон поворачивается, значение становится по умолчанию (false). Проверьте эту тему, чтобы узнать, как сохранить состояние: How do I save an Android application's state?

+0

do Мне нужно, чтобы сохранить состояние? этот метод вызывается onStart(), поэтому всякий раз, когда телефон повернут, он будет вызван? –

+0

Что вы имеете в виду? У вас есть что-то вроде 'var = isOnline()' в методе 'onStart'? – Cristian

+0

if (isOnline()) {...} –

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