2016-03-27 3 views
1

У меня проблема с закусками. Мой закусочная не реагирует на отклонятьЗакусочная не реагирует на snackbar.dismiss()

Мой код:

ConnectivityReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      ConnectivityManager cm = 
        (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 

      Snackbar snackbar = Snackbar 
        .make(drawer, getResources().getString(R.string.no_internet), Snackbar.LENGTH_INDEFINITE) 
        .setAction(getResources().getString(R.string.settings), new View.OnClickListener() { 
         @Override 
         public void onClick(View view) { 
          startActivityForResult(new Intent(android.provider.Settings.ACTION_SETTINGS), 0); 
         } 
        }); 

      NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); 
      boolean isConnected = activeNetwork != null && 
        activeNetwork.isConnectedOrConnecting(); 

      if(!isConnected){ 
       snackbar.show(); 
      }else { 
       snackbar.dismiss(); 
      } 
     } 
    }; 

Я проверил и мое приложение в другое состояние, если IsConnected возвращает истину. Спасибо за помощь.

ответ

2

Вы пытаетесь отклонить закусочную, которая не отображается, потому что у вас нет ссылки на тот, который вы создали ранее. Переместите объявление SnackBar как поле своего класса, и оно должно работать.

+0

Фактически OP * должен * сделать это поле класса и инициализировать его только один раз. Сейчас это локальное поле – Droidman

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