繁体   English   中英

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

[英]How to stop broadcast receiver to be fired when activity first launched

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

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

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

这是我在此线程中提出的老问题:

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

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

但是我观察到,当Wifi已连接但Internet从该网络断开时,它并没有提醒我。

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

我已经搜索了很多,但没有得到任何答案。 我希望我对自己的要求保持沉默。

您在这里检查文档了吗?

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"/> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM