2013-06-17 4 views
0

Я делаю приложение. Приложение нуждается в Интернете для 5 мероприятий, 4 других мероприятия не нуждаются в Интернете.Проверка на подключение к интернету постоянно с android

Деятельность, которая нуждается в Интернете, нуждается в ней, потому что она должна сделать CRUD и сделать httppost на веб-сайте для связи с БД. Так что в данный момент на OnCreate я чек для подключения к Интернету, как этот

ConnectionDetector cd = new ConnectionDetector(getApplicationContext()); 
Boolean isInternetPresent = cd.isConnectingToInternet(); // true or false 
if(isInternetPresent) 
    Log.e("Internet available","Internet available"); 
    //Do httpPost logic here 
else 
    Log.e("Internet not available","Internet not available"); 
    //Tell the user that he needs internet 

ConnectionDetector

import android.content.Context; 
import android.net.ConnectivityManager; 
import android.net.NetworkInfo; 

public class ConnectionDetector { 
    private Context context; 

    public ConnectionDetector(Context context) { 
     this.context = context; 
    } 

    public boolean isConnectingToInternet() { 
     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; 
    } 
} 

Но что после OnCreate? Что, если пользователь входит в Activity, чек проходит в onCreate, он заполняет форму, а затем он отключается от Интернета. Как проверить эту часть? И как это реализовать с моим текущим кодом? Вот почему в первом требовании мне нужна постоянная проверка подключения к интернету. Но это будет стекать аккумулятор как cbrulak отметил

+0

Возможно, вам следует использовать пользовательский прослушиватель событий, например [this] [2]. [2]: http://stackoverflow.com/questions/12157130/internet-listener-android-example –

ответ

0

Смотрите этот ответ: How to check internet access on Android? InetAddress never times out

Однако я хотел бы отметить то, что вы можете упустить из вида: проверка для постоянного подключения к Интернету будет потреблять мощность. Много власти. Итак, что вы можете сделать, это слить батареи вашего пользователя (что будет иметь много негативных последствий, а не только плохие отзывы).

Итак, может быть, мы могли бы поговорить о том, почему вам нужно постоянно проверять подключение к интернету? Вы можете посмотреть, как вы можете буферизовать свои сетевые запросы или кеширование и т. Д. Не стесняйтесь редактировать этот вопрос или даже создавать новый, просто ссылку на него :)

+0

Правда, не думал об этом! Я обновил вопрос и добавил некоторые фрагменты кода. Спасибо что подметил это! – mXX

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

  • Нет связанных вопросов^_^