在我的应用程序中需要检查互联网连接的变化。所以我们注册接收器" 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()方法将被执行,因为接收" android.net.ConnectivityManager.CONNECTIVITY_ACTION 的广播"我不想要它。谁能知道为什么会这样?
当我回到活动时,我不想接收 "android.net.ConnectivityManager.CONNECTIVITY_ACTION"
的广播。
答案 0 :(得分:1)
尝试使用您的活动调用时,在单独的BroadcastReceiver类中创建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>