首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Anroid 网络状态的广播有关问题求解

2013-04-26 
Anroid 网络状态的广播问题求解本帖最后由 u010224809 于 2013-04-17 14:59:45 编辑当我在Activity 里面里

Anroid 网络状态的广播问题求解
本帖最后由 u010224809 于 2013-04-17 14:59:45 编辑 当我在Activity 里面里面注册了一个监听网络状态的广播 
   @Override
    protected void onStart() {
        super.onStart();
        registerReceiver(mNetworkReceiver, new IntentFilter(
                ConnectivityManager.CONNECTIVITY_ACTION));
    }
    
    取消广播 
protected void onStop() {
        super.onStop();
        unregisterReceiver(mNetworkReceiver);
    };

1,为什么每次打开打开aictvity的时候都会执行一次BoradCastReceiver里面的OnReceive 方法,即使没有网络状1态改变。 
2,网络状态改变的广播是源码文件里的那个文件的那个方法发起的。

                                      谢谢
android,网络,状态,广播,
[解决办法]
每次打开,不都会重新注册吗
[解决办法]
Android 4.0网络编程详解中文版(全)
下载地址:
http://download.csdn.net/detail/wangxiangdong_sl/5267919
[解决办法]

引用:
每次打开,不都会重新注册吗


+1
[解决办法]
xml里面注册了吗
[解决办法]
引用:
引用:每次打开,不都会重新注册吗 每次打开是要重新注册,刚才没说清楚,我想问的就是为什么每次注册都会执行一次OnReceive 即使没有网络变化

这是Receiver机制,监听网络状态,网络未连接也是一种状态
说到底,连没连接,不去查一下,谁会知道呢?特别是刚注册的,你说不是吗




[解决办法]
网络状态上报好像是和Servicestate,GsmServcieStateTracker这两个java类有关吧,你说得网络状态是指哪些状态呢? 是否连网,还是信号强度,网络类型
[解决办法]
应是给了个初始状态
[解决办法]
引用:
本帖最后由 u010224809 于 2013-04-17 14:59:45 编辑当我在Activity 里面里面注册了一个监听网络状态的广播 
   @Override
    protected void onStart() {
        super.onStart();
        registerReceiver(mNetworkReceiver, new IntentF……


每次打开Activity的时候  LZ的onCreate方法应该是每次执行了一次  所以就执行了onReceive方法


至于网络状态的改变是源码中的ConnectivityManager.java中处理的
可以看下 http://blog.csdn.net/lvron/article/details/7098771


[解决办法]
顶1L 。 

  一般的做法是在onAttachedWindow()注册, 在onDetached()取消注册 。

   添加一个boolean 标记 判断是否已经注册过了。
[解决办法]
注册的时候,都会调用一下。

热点排行