首页 > 代码库 > Android-广播机制的注册及作用

Android-广播机制的注册及作用

Android的广播接收器注册方式分为两种:

1.动态注册:(即代码注册,该注册经常伴随着组件的生命周期或者对象的生命周期同生共死),如下:

/**
 * 	@author Lean  @date:2014-8-19  
 */
public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		IntentFilter filter=new IntentFilter();
		filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
		registerReceiver(new NetWorkBroadcastReceiver(),filter);
	}

}
2.静态注册:即在AndroidManifest.xml中注册.

<receiver android:name="org.lean.NetWorkBroadcastReceiver" >
            <intent-filter android:priority="990">
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
            </intent-filter>
        </receiver>

安全权限为:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

在此对其注册的问题进行考究.之前看一些教材说是只要在android安装的时候对其priority与android绑定,并在receiver系统表中自动注册信息.

1.其实不然,在安装的时候,并没有启动应用的,系统是不用绑定你的<receiver />的.具体是否有效以如下的按钮判断为主:该图说明了你的应用正在运行,也就是你在xml里注册的广播接收器是有效果的.



2.假设应用并没有强制停止,在重新开机后,上图仍然为运行状态.也就是广播接收着还会在特定的条件下触发.(如下重新开机)


(如下,重新启动后,该包的进程运行状态,至于底层做了什么,请大牛们解释下)