android - 在 android 中重新加载 Internet 事件的 Activity

标签 android broadcastreceiver

在我的项目中,我使用 JSON 解析,在我的第一个 Activity 中,我展示了从 Web 服务获取数据的 ListView,问题是当它们没有互联网连接时,它显示空白,但如果我继续那个 Activity 和互联网即将到来,然后我的 Activity 会重新加载,为此要做什么。

最佳答案

使用BroadcastReceiver

     private BroadcastReceiver networkReceiver = new BroadcastReceiver {
     @Override
     public void onReceive(Context context, Intent intent) {
          super.onReceive(context, intent);
          if(intent.getExtras()!=null) {
              NetworkInfo ni=(NetworkInfo)intent.getExtras().get(ConnectivityManager.EXTRA_NETWORK_INFO);
         if(ni!=null && ni.getState()==NetworkInfo.State.CONNECTED) {
             // we're connected
         }
 }
 // we're not connected 
  }
  }

在您的 onResume() 中注册,并在 onPause() 中取消注册。

    @Override
    protected void onPause() {
       super.onPause();
       unregisterReceiver(networkReceiver);
    }

  @Override
  protected void onResume() {
      super.onResume();
      IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
      registerReceiver(networkReceiver, filter);
  }

  public boolean isNetworkConnected() {
    ConnectivityManager cm =
        (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    if (netInfo != null && netInfo.isConnectedOrConnecting()) {
        return true;
    }
    return false;
  }

关于android - 在 android 中重新加载 Internet 事件的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18566401/

相关文章:

android - 如何判断apk运行在模拟器上还是真机上?

机器人 : ACTION_PACKAGE_ADDED not received (xperia SO-03D)

android - 从 BroadcastReceiver 调用 Activity 方法。可能吗?

android - 如何将 SMS 消息存储到 SQLite 数据库?

android - 从 Android Q 中的接收器启动 Activity

android - 从广播接收器向 Activity 发送警报

android - 如何在realm数据库的listview中查看查询到的数据?

Android webView - 如何更改 webView 对话框的背景颜色?

android - 多个谷歌配置服务

android - Libgdx 应用程序在 Android 上崩溃 : Could not find class 'java.awt.Rectangle' ,