在我的应用程序中需要检查网际网路连接的变更。因此,我们注册接收方"android.net.ConnectivityManager.CONNECTIVITY_ACTION“,并在onReceive()中处理连接性更改,如下所示。
BroadcastReceiver receiver = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent)
{
if (action.equals(android.net.ConnectivityManager.CONNECTIVITY_ACTION)) {
// handle netwrk changes code
}
}
};上面的代码运行良好,它处理互联网连接性的变化。但问题是,当我回到其他活动并返回到这个活动时,onReceive()方法将执行,因为接收到了我不想要的onReceive广播。有人知道为什么会发生这种事吗?
当我回到活动中时,我不想接收"android.net.ConnectivityManager.CONNECTIVITY_ACTION"的广播。
发布于 2014-11-07 12:12:15
当您的活动未被调用时,尝试在单独的BroadcastReceiver类中创建广播接收器
public class Netreciever extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (action.equals(android.net.ConnectivityManager.CONNECTIVITY_ACTION)) {
// handle netwrk changes code
}
}manifest.xml
<receiver
android:name=".Netreciever"
android:enabled="true" >
<intent-filter>
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.net.conn.DATA_ACTIVITY_CHANGE" />
</intent-filter>
</receiver>https://stackoverflow.com/questions/26800926
复制相似问题