广播接收者之自定义广播

xiaoxiao2021-02-28  76

Android系统中自带了很多广播,如果需要监听某个广播只需创建对应的广播接收者即可。当这些系统级别的广播事件不能满足实际需要时,还可以自定义广播。需要注意的是,自定义广播需要由对应的广播接收者去接收,否则这个广播是无意义的。 实现界面如下:

1.创建程序: 程序对应的布局文件(activity_main.xml)如下:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/stitch" tools:context="cn.edu.bzu.myapplication.MainActivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:onClick="send" android:layout_marginTop="50dp" android:text="发送求救广播" android:paddingLeft="5dp" android:paddingRight="5dp" android:background="#FFD2D2" android:textSize="20sp"/> </RelativeLayout>

Mainactivity的代码如下:

package cn.edu.bzu.myapplication; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void send(View view){ Intent intent=new Intent(); intent.setAction("Help_Stitch"); sendBroadcast(intent); } }

2.添加广播接收者:MyBroadcastReceiver 代码如下:

package cn.edu.bzu.myapplication; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.i("MyBroadcastReceiver","自定义的广播接收者,接收到了求救广播事件"); Log.i("MyBroadcastReceiver",intent.getAction()); } }

在清单文件中注册广播接收者MyBroadcastReceiver,代码如下:

<receiver android:name=".MyBroadcastReceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="Help_Stitch"/> </intent-filter> </receiver>

3.运行程序发送广播

需要注意的是:自定义广播的类型与广播接收者在清单文件中配置的类型要一致,否则无法接受广播。

转载请注明原文地址: https://www.6miu.com/read-66704.html

最新回复(0)