首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android.net.ConnectivityManager.CONNECTIVITY_ACTION onReceive()

android.net.ConnectivityManager.CONNECTIVITY_ACTION onReceive()
EN

Stack Overflow用户
提问于 2014-11-07 12:05:52
回答 1查看 738关注 0票数 3

在我的应用程序中需要检查网际网路连接的变更。因此,我们注册接收方"android.net.ConnectivityManager.CONNECTIVITY_ACTION“,并在onReceive()中处理连接性更改,如下所示。

代码语言:javascript
复制
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"的广播。

EN

回答 1

Stack Overflow用户

发布于 2014-11-07 12:12:15

当您的活动未被调用时,尝试在单独的BroadcastReceiver类中创建广播接收器

代码语言:javascript
复制
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

代码语言:javascript
复制
 <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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26800926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档