Android复习笔记(6) -BrodCastReceiver (广播接收者
16lz
2021-01-26
1.定义广播接收者
生命周期:
} 2.在清单文件中声明 <receiver android:name="com.example.recivertest.OutCallReceiver"> <intent-filter > <!-- 打电话的动作 --> <action android:name="android.intent.action.NEW_OUTGOING_CALL"/> </intent-filter> </receiver> 注意:一定要加权限 <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
例2.在代码中注册 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); registReceiver(); } private void registReceiver() { receiver = new OutCallReceiver(); IntentFilter filter = new IntentFilter(Intent.ACTION_NEW_OUTGOING_CALL); this.registerReceiver(receiver, filter); } @Override protected void onDestroy() { super.onDestroy(); this.unregisterReceiver(receiver); }
注意:一定要调用取消注册receiver的方法,不然会后台会报错。 这种方式通常与service使用,在service中注册receiver,这样receiver的生命周期就与service相同。而清单文件中注册,就算应用退出,receiver也一直有效。
- 定义类继承BroadcastReceiver,重写onReceive方法
- 清单文件中声明<receiver>,需要在其中配置<intent-filter>指定接收广播的动作
-
当接收到匹配广播之后就会执行onReceive方法
- BroadcastReceiver除了在清单文件中声明,也可以在代码中声明,使用registerReceiver方法注册Receiver,这样receiver的生命周期就与注册者一样。
生命周期:
- 广播接收者的生命周期是非常短暂的,在接收到广播的时候创建,onReceive()方法结束之后销毁
} 2.在清单文件中声明 <receiver android:name="com.example.recivertest.OutCallReceiver"> <intent-filter > <!-- 打电话的动作 --> <action android:name="android.intent.action.NEW_OUTGOING_CALL"/> </intent-filter> </receiver> 注意:一定要加权限 <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
例2.在代码中注册 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); registReceiver(); } private void registReceiver() { receiver = new OutCallReceiver(); IntentFilter filter = new IntentFilter(Intent.ACTION_NEW_OUTGOING_CALL); this.registerReceiver(receiver, filter); } @Override protected void onDestroy() { super.onDestroy(); this.unregisterReceiver(receiver); }
注意:一定要调用取消注册receiver的方法,不然会后台会报错。 这种方式通常与service使用,在service中注册receiver,这样receiver的生命周期就与service相同。而清单文件中注册,就算应用退出,receiver也一直有效。
更多相关文章
- .Net程序员玩转Android开发---(20)Android绑定服务
- linux chrome运行android应用方法
- Android(安卓)ViewRootImpl 解析
- Android(安卓)Studio Mac常用快捷键
- js判断移动端是否安装某款app的多种方法
- android Service相关知识点
- Android数据存储之三SQLite嵌入式数据库(1)
- Android中的OnMeasure及OnLayout
- Android(安卓)窗口添加机制系列1-Activity