1.介绍

2.实现方法

3.注册广播

(1)静态广播

在AndroidManifest.xml文件中注册广播

<intent-filter>为过滤器
<receiver android:name=".MyBroadCast1"></receiver>
<receiver android:name=".MyBroadCast2">
<intent-filter>
<action android:name="com.lucky"></action>
</intent-filter>
</receiver>

(2)动态广播

4.静态广播代码

(1)主界面

package com.lucky.test40broadcastreceiver;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button; public class MainActivity extends AppCompatActivity {
Button button1;
Button button2; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1=findViewById(R.id.button);
button2=findViewById(R.id.button2);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this,MyBroadCast1.class);
sendBroadcast(intent); //发送广播
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//设置Action为com.lucky,会在AndroidManifest.xml中的receiver中启动action为com.lucky的广播
Intent intent=new Intent();
intent.setAction("com.lucky");
sendBroadcast(intent);
}
});
}
}

(2)广播接收器1(采用Toast语句进行提示)

package com.lucky.test40broadcastreceiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast; //MyBroadCast1广播接收器
public class MyBroadCast1 extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context,"接收到广播",Toast.LENGTH_SHORT).show();
}
}

(3)广播接收器2(采用通知的方式进行提示)

package com.lucky.test40broadcastreceiver;

import android.app.Notification;
import android.app.NotificationManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.support.annotation.RequiresApi; public class MyBroadCast2 extends BroadcastReceiver {
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
@Override
public void onReceive(Context context, Intent intent) {
//采用通知的形式
NotificationManager manager= (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification.Builder builder=new Notification.Builder(context);
builder.setSmallIcon(R.mipmap.ic_launcher); //给通知设置图标
builder.setTicker("广播消息"); //设置提示消息
builder.setContentTitle("您有一条广播消息");//设置内容标题
builder.setContentText("hello lucky"); //设置通知内容
manager.notify(0x01,builder.build()); //让通知显示
}
}

5.动态广播

(1)主界面

package com.lucky.test41broadcastreceiver2;

import android.content.Intent;
import android.content.IntentFilter;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button; public class MainActivity extends AppCompatActivity {
Button button1;
MyBroadCast myBroadCast; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1=findViewById(R.id.button); //注册广播
myBroadCast=new MyBroadCast(); //实例化广播接收器
IntentFilter intentFilter=new IntentFilter();//实例化一个过滤器
intentFilter.addAction("com.lucky"); //添加action来明确接收哪种类型的广播
registerReceiver(myBroadCast,intentFilter);//注册广播 button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//发送广播
Intent intent=new Intent();
intent.setAction("com.lucky");
sendBroadcast(intent);
}
});
}
}

(2)广播接收器

package com.lucky.test41broadcastreceiver2;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast; public class MyBroadCast extends BroadcastReceiver { @Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context,"hello lucky",Toast.LENGTH_SHORT).show();
}
}

最新文章

  1. REDHAT一总复习1 输出重定向及head tail的用法
  2. gnuWin32-mini-2016.10.30
  3. 【转】Intellij IDEA 14中使用MyBatis-generator 自动生成MyBatis代码
  4. java 字符串判断是否相等
  5. Information
  6. [docker] 管理docker容器中的数据
  7. android 项目学习随笔十五(ShareSDK开放平台)
  8. ubuntu 修改主机名
  9. linux_jvm_jhat_dump内存分析
  10. WPF使用第三方的字体(TTF文件)
  11. AOP Aspect Oriented Programming
  12. HDOJ 1018 Big Number(大数位数公式)
  13. UVa 12683 Odd and Even Zeroes(数论+数字DP)
  14. python第五天
  15. PHP初入--表单元素
  16. LeetCode 121. Best Time to Buy and Sell Stock (买卖股票的最好时机)
  17. 【翻译】Ext JS最新技巧——2015-1-2
  18. 从壹开始前后端分离【 .NETCore2.1 +Vue 2 +AOP+DI】框架之一 || 前言
  19. JSP Ueditor 实现图片跨域上传
  20. 朱晔的互联网架构实践心得S1E2:屡试不爽的架构三马车

热门文章

  1. KillTimer不能放在析构函数,可以放在DestroyWindow函数里
  2. [代码审计]PHP_Bugs题目总结(1)
  3. 小程序弹框wx.showModal的使用
  4. #C++初学记录(贪心算法#二分查找)
  5. 微信小程序丨将溢出的文本用省略号代替的方法
  6. SpringBoot整合Hibernate
  7. Android输入法遮挡了输入框,使用android:fitsSystemWindows=&quot;true&quot;后界面顶部出现白条解决方案
  8. ifc osg施工现场模拟
  9. Qt连接数据库
  10. opencv4 mask_rcnn模型调(c++)