#java #android #webview
Все привет. Как переключать activity при отсутствии интернета? Есть простой webview с ссылкой на сайт. public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); WebView webView = (WebView) findViewById(R.id.webView); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); webView.setWebViewClient(new MyWebViewClietn()); webView.loadUrl("http://google.com/"); } } и есть еще класс TryNetwork public class TryNetwork { public static boolean check() { Runtime localRuntime = Runtime.getRuntime(); boolean bool = false; try { int i = localRuntime.exec("/system/bin/ping -c 1 8.8.8.8").waitFor(); if (i == 0) { bool = true; } return bool; } catch (InterruptedException localInterruptedException) { localInterruptedException.printStackTrace(); return false; } catch (IOException localIOException) { localIOException.printStackTrace(); } return false; } } я знаю как переключать экраны простыми кнопками, но тут возникла потребность сделать переключение автоматическим google не находит ничего (( вот второй activity public class BaseActivity extends AppCompatActivity implements View.OnClickListener { Button reTry; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_base); reTry = (Button) findViewById(R.id.reTry); reTry.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.reTry: Intent intent = new Intent(this, MainActivity.class); startActivity(intent); break; default: break; } } } и разметка второго activity
Ответы
Ответ 1
Создаем класс для проверки соединения public class NetworkUtils { public static boolean isNetworkAvailable(Context context) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetwork = null; if (cm != null) { activeNetwork = cm.getActiveNetworkInfo(); } return activeNetwork != null && activeNetwork.isConnectedOrConnecting(); } и далее там где нужно проверить сеть, например, при старте активности в методе onCreate if (!NetworkUtils.isNetworkAvailable(this)) { startActivity(new Intent(this, PreferenceActivity.class)); }Ответ 2
Вам нужно в втором классе использовать экземпляр класса проверки соединения. Дальше если метод этого класса возвращает значение false то мы переходим на другое активити. То есть тот переход, что висит на кнопке, просто делать при проверке. Если я правильно понимаю, вам нужно сделать переход с активити BaseActivity на MainActivity. Значит вы должны в классе проверки соединения, возвращать значение true или false в зависимости от наличия соединения. Дальше вам нужно будет вызывать метод класса проверки соединения в активити BaseActivity и если соединение отсутствует то делать переход. Не факт что я все правильно написал, но по логике должно работать. Надеюсь чем-то помог. Удачи :) P.S. Метка android-studio используется для вопросов связанных только с самой IDE, а не с тем что вы там создаете. Поэтому в вам бы посоветовал избегать использования неправильных меток, поскольку здесь это не приветствуется :))
Комментариев нет:
Отправить комментарий