实时网络检查-Android

问题描述

我有一个应用,其中,我想检查手机的实时网络。

这是我的Java代码

这只是完整的Java文件中的一部分。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_notes);

    if (checkNetwork() == false) {
        Toast noNetwork = Toast.makeText(getApplicationContext(),"Sync is paused,due to no 
  internet...",Toast.LENGTH_LONG);
        noNetwork.show();
    } else if (checkNetwork() == true) {
        Toast yesNetwork = Toast.makeText(getApplicationContext(),"Sync is turned on...",Toast.LENGTH_LONG);
        yesNetwork.show();
    }

    // This code we will add later - bottomNavigation.getMenu().removeItem(R.id.navigation_notes);
}

private boolean checkNetwork() {
    ConnectivityManager connectivityManager
            = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}

如果我打开我的应用并导航至此页面,它将显示internet is there吐司,但是在关闭移动数据的同时,未显示一个显示internet is not there的吐司。我认为上面的代码不是real-time,或者我不知道烤面包有问题。

我想知道是否可以通过某种方式实时实现上述代码。预先感谢。

解决方法

使用registerNetworkCallback()方法注册NetworkCallback。示例代码为here