不飞则已,一飞冲天;不鸣则已,一鸣惊人。这篇文章主要讲述Android 广播接受者相关的知识,希望能为你提供帮助。
广播也是通过intent来传递的。
广播分为有序广播和标准广播。
标准广播是发送广播后,所有的广播接受者都可以去接收。
有序广播是发送广播后,由高优先级的先接收广播,处理后再往后广播,同时高优先级的接受者可以中断广播。
广播注册可以分为动态注册和静态注册。下面就先将静态注册。静态注册是新建广播接收者时,是通过new----->
other------->
Brodcast Receiver来实现的。AS会自动帮我们在Manifext.xml里注册好,我们只需要添加intent-filter及在里面加入action即可。
下面的例子是静态注入,发送一条标准广播,然后接收。
1、MainActivity
package com.yuanlp.sendbroadcast; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; 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 click(View view){ Intent intent=new Intent("com.yuanlp.sendBroadcast.MY_BROADCAST"); //设置intent的action sendBroadcast(intent); //发送广播 } }
2、 activity_main.xml里
< ?xml version="1.0" encoding="utf-8"?> < android.support.constraint.ConstraintLayout 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" tools:context="com.yuanlp.sendbroadcast.MainActivity"> < Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="click" android:text="发送广播" tools:layout_editor_absoluteX="137dp" tools:layout_editor_absoluteY="136dp"/> < /android.support.constraint.ConstraintLayout>
3、MyReceiver
package com.yuanlp.sendbroadcast; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.widget.Toast; public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context,"接收到广播",Toast.LENGTH_SHORT).show(); } }
4、Manifext.xml
< ?xml version="1.0" encoding="utf-8"?> < manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.yuanlp.sendbroadcast"> < application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" 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=".MyReceiver" android:enabled="true" android:exported="true"> < intent-filter> < action android:name="com.yuanlp.sendBroadcast.MY_BROADCAST"> < /action> < /intent-filter> < /receiver> < /application> < /manifest>
运行程序后,在点击按钮后,自定义的广播 接受者会受到广播,并弹出toast
【Android 广播接受者】本文出自 “YuanGuShi” 博客,请务必保留此出处http://cm0425.blog.51cto.com/10819451/1942565
推荐阅读
- IDEA:Application Server was not connected before run configuration stop, reason: Unable to ping 1099
- 在VS Code中调试安装在手机中的App
- 使用gridlayout布局后,因某些原因又删除,并整理文件夹结构时,Unable to resolve target &#39;android-7&#39;
- 两个值和3D旋转效果
- Framework7内联选择器/日期时间
- android|android 实现3d扫描,3D激光扫描三维重建——6.(android)系统框架
- Windows的7款最佳免费音乐键查找器软件
- 6款最佳SSD健康检查软件合集(Windows/Mac)
- 6款Windows和Mac的最佳Wi-Fi分析器软件合集