Android网络状态变化检测需要时间

 朵儿lp_685 发布于 2022-12-28 12:30

我试图在我的Android应用程序中检测网络状态更改.我按照那个问题的答案:检查INTENT互联网连接

这有效,但广播接收者需要时间来检测变化.当我打开或关闭wifi时,大约10秒后调用onReceive()方法.为什么花这么多时间?有人可以帮忙吗?

谢谢

这是我的代码:

public class NetworkStateReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    Log.d("app", "Network connectivity change");
    if (intent.getExtras() != null) {
        NetworkInfo ni = (NetworkInfo) intent.getExtras().get(
                ConnectivityManager.EXTRA_NETWORK_INFO);
        if (ni != null && ni.getState() == NetworkInfo.State.CONNECTED) {
            Log.i("app", "Network " + ni.getTypeName() + " connected");
            Toast.makeText(context, "CONNECTED", Toast.LENGTH_LONG).show();
        } else if (intent.getBooleanExtra(
                ConnectivityManager.EXTRA_NO_CONNECTIVITY, Boolean.FALSE)) {
            Toast.makeText(context, "DISCONNECTED", Toast.LENGTH_LONG).show();
            Log.d("app", "There's no network connectivity");
        }
    }

}

}

在我的Manifest的应用程序标签中:


        
            
        

yrazlik.. 6

我找到了解决方案.

我没有扩展BroadcastReceiver类并创建NetworkStateChangeReceiver,而是在我的活动上创建了一个broadcastreceiver并在那里注册了它.现在它工作,并立即触发onReceive()方法.

1 个回答
  • 我找到了解决方案.

    我没有扩展BroadcastReceiver类并创建NetworkStateChangeReceiver,而是在我的活动上创建了一个broadcastreceiver并在那里注册了它.现在它工作,并立即触发onReceive()方法.

    2022-12-28 12:33 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有