本文主要讲述广播的静态注册。
该说不说,上代码。
首先,在activity_main里面写布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="请输入发送内容:"/>
<EditText
android:id="@+id/inputEditText"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginTop="16dp"
/>
<Button
android:id="@+id/sendBroadcastButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_gravity="center_horizontal"
android:text="发送广播"/>
<TextView
android:id="@+id/resultTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="收到的内容:"/>
</LinearLayout>
然后创建一个广播接受类,命名为ImoocBroadcastReceiver,让它继承BroadcastReceiver,并创建方法,如下:
public class ImoocBroadcastReceiver extends BroadcastReceiver {
private static final String TAG = "ImoocBroadcastReceiver";
@Override
public void onReceive(Context context, Intent intent) {
}
}
然后再manifest里面静态注册广播接收器,里面有好多可以注册,下面只是部分,代码如下:
<!-- 静态注册广播接收器 -->
<receiver android:name=".ImoocBroadcastReceiver"
android:exported="false">
<!-- 接受那些广播 -->
<intent-filter>
<!-- 开机广播 -->
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<!-- 电量过低时的广播 -->
<action android:name="android.intent.action.BATTERY_LOW"/>
<!-- 应用被安装广播 -->
<action android:name="android.intent.action.PACKAGE_INSTALL"/>
<!-- 应用被卸载广播 -->
<action android:name="android.intent.action.PACKAGE_FULLY_REMOVED"/>
<!--数据类型 -->
<data android:scheme="package"/>
</intent-filter>
</receiver>
然后在ImoocBroadcastReceiver里面判断时候接受到广播,广播类型是什么,代码如下:
public class ImoocBroadcastReceiver extends BroadcastReceiver {
private static final String TAG = "ImoocBroadcastReceiver";
@Override
public void onReceive(Context context, Intent intent) {
//接受广播
if (intent!=null){
//接受到的是什么广播
String action=intent.getAction();
Log.d(TAG,"onReceive:"+action);
}
}
}