Как считать Firebase выполненным на втором плане?

У меня есть главная активность, где я вижу, что, если у меня нет Интернета в onCreate, Firebase (У которого есть Ваша собственная AsyncTask) он не делает Вашу работу, тогда проблема - что, если я не получаю информации Firebase, я не могу заставлять делать сеттера адаптера с информацией и у меня осталась бы пустая активность. Мой вопрос, - как осуществление задания постоянного получения Firebase если у меня нет Интернета? Поскольку я могу получать базу данных FB однажды соединенный к Интернету?

Я протестировал следующие методы, чтобы делать boolean из, если я соединен или нет, и они не подавали меня ничего... даже имея wifi я нарушал мое объявление, которое не было соединенным...

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

и

public boolean isNetworkAvailable(Context context) {
     ConnectivityManager connectivity =(ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);


    if (connectivity == null) {
        return false;
    } else {
        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;
    }

Если у Firebase есть его собственный "doInBackground" ввиду Ваш Asynctask, потому что, присоединившись в Интернет, (wifi или 3g) он не дает мне информации, чтобы приспосабливать ее?

Большое спасибо.

3
задан 05.03.2016, 09:55
2 ответа

Совершенный! РЕШЕННЫЙ!

Firebase после того, как считаю объединенными AsyncTask, я помогаю внутри метода (Первый параметр - Context, где я хочу выполнить Firebase, и второй параметр GridView, где я хочу aГ±adir setAdapter).

, выполнив это в onCreate главной активности: Если я не соединен, я поместил, что бросил один Toast, и но он сделает onDataChange (Методом FB) + setAdapter в GridView, который произошел с ним как второй параметр. Функционируй верно, без какой-либо проблемы!

Надеялся, что вам служило чем-то объяснение!

1
ответ дан 24.11.2019, 14:46

Этот метод полезнее, который он проверяет, если есть связность, которая может быть Вифи (ConnectivityManager.TYPE_WIFI) ó GPrS (ConnectivityManager.TYPE_MOBILE):

public Boolean isNetAvailable(Context context)  {      
        try{
           ConnectivityManager connectivityManager = (ConnectivityManager)                                                                               context.getSystemService(Context.CONNECTIVITY_SERVICE);
          NetworkInfo wifiInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
          NetworkInfo mobileInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
                if (wifiInfo.isConnected() || mobileInfo.isConnected()) {
                    return true;
                }
            }
            catch(Exception e){
                Log.e("Exception Connectivity", e.getMessage());
            }
            return false;
        }

С этим ты можешь реализовывать твое утверждение.

помни что добавь разрешение в Manifest.xml:

  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

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

2
ответ дан 24.11.2019, 14:46
  • 1
    Функционируй верно! вот тем, в чем он нуждался! Большое спасибо! – M. Mariscal 07.03.2016, 01:37