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

怎么在应用程序后台运行时监听系统广播

2013-09-06 
如何在应用程序后台运行时监听系统广播一般情况下Broadcast Receiver都是在onResume的时候注册,在onPause

如何在应用程序后台运行时监听系统广播
一般情况下Broadcast Receiver都是在onResume的时候注册,在onPause的时候注销。如果想要在程序转到后台运行时(此时Activity已经onStop)监听系统广播,如网络连接状态,应该怎么办?现在遇到的问题是,只要在后台运行时遇到监听的广播,很容易出现ANR。大家知道该怎么办吗?还是不应该在这个时候进行监听?又或者应该换一种处理方法?请大家指导一下,谢谢 Broadcast?Receiver ANR
[解决办法]
一般可以在onDestroy()里注销广播,或者使用service,ANR估计不是接收广播的事情 ,应该是接收到之后对UI线程的操作时间过长
[解决办法]
你说的ANR 应该不是有注册或者注销 broadcast receiver 而是由于 坚挺后的动作吧
[解决办法]
注册广播的方式有两种,你可以使用第二种,即在AndroidManifest.xml中注册


<receiver android:name=".ServiceBroadcastReceiver" >
              <intent-filter>
                  <action android:name="android.intent.action.BOOT_COMPLETED"/>
              </intent-filter>
        </receiver>

然后实现ServiceBroadcastReceiver,收到该广播,做你想做的事情。这个是在整个程序的生命周期均存在,你程序退出了都可以继续接收的

热点排行