文章目录
6.1 广播接收者简介
6.1.1 广播特点
-
Android系统中内置了很多广播,例如手机开机完成、电池电量不足时都会发送一条广播。
-
为了监听来自系统或者应用程序的广播事件,Android系统提供了BroadcastReceiver(广播接收者)组件。
6.2 广播接收者入门
6.2.1广播接收者的创建
1.静态注册
<?xml version="1.0" encoding="utf-8"?>
<manifest ………. >
<application ……… >
<receiver
android:name=".MyReceiver"
android:enabled="true"
android:exported="true" >
</receiver>
</application>
</manifest>
2.动态注册
6.2.2 实战演练——拦截史迪仔电话
1.mainActivity
package cn.itcast.interceptcall;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private EditText et_ipnumber;
private SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_ipnumber = (EditText) findViewById(R.id.et_ipnumber);
// 创建SharedPreferences对象
sp = getSharedPreferences("config", MODE_PRIVATE);
}
public void click(View view) {
// 获取用户输入的拦截号码
String number = et_ipnumber.getText().toString().trim();
//创建Editor对象,保存用户输入的拦截号码
SharedPreferences.Editor editor = sp.edit();
editor.putString("number", number);
editor.commit();
Toast.makeText(this, "保存成功", Toast.LENGTH_SHORT).show();
}
}
2.清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.itcast.interceptcall" >
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme" >
<activity android:name=".MainActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver
android:name=".OutCallReceiver"
android:enabled="true"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
</intent-filter>
</receiver>
</application>
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
</manifest>
6.3 自定义广播
6.3.1 自定义广播的发送与接收
6.3.2 实战演练——拯救史迪仔
6.4 广播类型
6.4.1 有序广播和无序广播
Android系统提供了两种广播类型,有序广播和无序广播,开发者可根据需求为程序设置不同的广播类型。
6.4.2 实战演练——拦截史迪仔广播
6.5 本章小结
本章详细地讲解了广播接收者的相关知识,首先介绍了什么是广播接收者,然后讲解了如何自定义广播以及广播的类型。通过本章的学习,要求初学者能够熟练掌握广播接收者的使用,并在实际开发中进行应用。
【学习笔记】
【学习资料】
- 教材:《Android移动开发案例教程》
- 学习资料:Android移动开发配套资料
-1.源代码:每个章节配套案例代码
-2.补充案例:项目、课后练习代码
-3.课程资料:课后习题及答案、ppt - github:Android
包含自己学习过程的全部案例、实验、项目代码 - 推荐学习视频:Android开发从入门到精通(项目案例版)