Как сделать (без подключения к Интернету) broadCastReceiver доступным для всех действий - PullRequest
0 голосов
/ 04 января 2019

Я использую ConnectivityManager для проверки интернет-соединения, проблема в том, что я не могу перезапустить активность, когда интернет включен, и я не могу показать сообщение об ошибке (нет интернет-соединения) из всех действий. Ниже мое код

  ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
    if(!(networkInfo!=null && networkInfo.isConnected())){
      Intent i = new Intent(this,NoInternetConnection.class);
      startActivity(i);
    }

Для класса NoInternetConnection я кодировал, как показано ниже

 public class NoInternetConnection extends AppCompatActivity {
private static ImageView internetStatus;
private static TextView noConnectionText;
private static Button tryAgain;
@Override
protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    final ActionBar actionBar =getSupportActionBar();
    actionBar.hide();
    setContentView(R.layout.activity_no_internet_connection);
    internetStatus = (ImageView) findViewById(R.id.internetStatus);
    noConnectionText=(TextView)findViewById(R.id.noConnectionText);
    tryAgain=(Button)findViewById(R.id.tryAgain);
    tryAgain.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //checking internet connection
            ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
            if (!(networkInfo != null && networkInfo.isConnected())) 
            {
              onRestart();
            }
            else {
                finish();
            }
        }
    });
    internetStatus.setImageResource(R.drawable.img);
    noConnectionText.setText("No Internet Connection");
 }
}

1 Ответ

0 голосов
/ 06 января 2019

Создать этот класс

public class Utils{

public static void startActivity(Context context,Class clas,Bundle extras)
    {
        ConnectivityManager connectivityManager = 
        (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
        if(!(networkInfo!=null && networkInfo.isConnected())){
            Intent i = new Intent(context,NoInternetConnection.class);
            context.startActivity(i);
        }else {
            Intent i = new Intent(context,clas);
            i.putExtras(extras);
            context.startActivity(i);
        }
    }
}

и всякий раз, когда вам нужно начать занятие вместо звонка

Intent i = new Intent(this,YourActivity.class);
startActivity(i);

Звоните Utils.startActivity(context,YourActivity.class,new Bundle());

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...