活动首次启动时如何停止广播接收器被触发

时间:2018-10-19 09:42:52

标签: java android android-internet

我问了以下引用的问题,但发现所有工作都白费了,因为android现在不允许注册广播以进行网络更改。

您无法在Manifest中进行此操作,因为在Activity中注册它后仍然可以得到呼叫,并且该上下文仍然有效。

现在,我已经在自己的活动中实施了计划,正在接到广播接收者的电话,并且一切都按预期进行。但是当我开始活动时,我会自动接到电话。我不能在活动开始时就跳过那件事吗?

这是我在该主题中提出的老问题:

  

我有一个应用程序,在该应用程序中我已实现了BroadcastReceiver来进行网络更改。

     

当网络连接发生任何变化时,它会提醒我,例如   网络断开连接,网络连接,网络   被更改等

     

但是我发现当Wifi处于   已连接,但Internet已从该网络断开。

     

有什么可以检查这种情况的,我们可以播报吗?   ??

     

我搜索了很多,但没有得到任何答案。我希望我做了   我安静地清楚我的要求。

1 个答案:

答案 0 :(得分:0)

您是否已在此处查看文档?

https://developer.android.com/training/monitoring-device-state/connectivity-monitoring?hl=es-419

它向您说明如何使用ConnectivityManager检查连通性的变化

ConnectivityManager cm =
    (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null &&
                  activeNetwork.isConnectedOrConnecting();

您甚至可以检查类型:

boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;

甚至通过支持以下操作,甚至允许您的应用(通过清单)考虑更改:

<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>