Android BroadcastReceiver实现自定义静态广播和动态广播(黏性广播)
来源:互联网 发布:mkv播放器 for mac 编辑:程序博客网 时间:2024/06/04 19:30
思维导图:
静态广播:
当广播发出去的时候 如果接收广播的应用程序已经退出,也能接收广播:
发送者代码:
package com.example.g160628_android_21_sender;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.EditText;public class MainActivity extends AppCompatActivity { private EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = (EditText) findViewById(R.id.et_main_EditText); } public void send(View view){ //广播内容 String data=editText.getText().toString(); Intent intent=new Intent(); //指定广播内容 intent.putExtra("data",data);
intent.setAction("里面放广播名"); //无序广播 //sendBroadcast(intent); //黏性广播 过时的方法 sendStickyBroadcast(intent); }}
//新的应用程序(一个新的Module)
//静态
新建一个类:
import android.content.Intent;import android.util.Log;/** * Created by Administrator on 2017/7/11. */public class MyRecriver01 extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { String action=intent.getAction(); if("com.example.g160628_android_21_sender.send".equals(action)){ String data=intent.getStringExtra("data"); Log.i("test","接收者1号: "+data); } }}
在该Module里的配置文件中加入代码:
<!--接收者--> <receiver android:name=".MyRecriver01"> <intent-filter> <action android:name="广播名"></action> </intent-filter> </receiver> </application>
新的应用程序(一个新的Module)
//动态广播:当应用程序退出接收不到广播,为补全不足添加另一个广播 黏性广播。
黏性广播:当进入应用程序后就可以接收到广播(黏性广播主只要控制 发送者中的代码:sendStickyBroadcast(intent)(过时的方法))
在发送者代码中的配置文件中添加黏性广播的权限
<!--添加黏性广播权限--><uses-permission android:name="android.permission.BROADCAST_STICKY"></uses-permission>
新建一个类:
package com.example.g160628_android_21_receiver02;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.util.Log;/** * Created by Administrator on 2017/7/11. */public class MyReceiver02 extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action=intent.getAction(); if("com.example.g160628_android_21_sender.send".equals(action)){ String data=intent.getStringExtra("data"); Log.i("test","接收者2号: "+data); } }}
在ActivityMain中是实现代码:
动态广播:
package com.example.g160628_android_21_receiver02;import android.content.IntentFilter;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;public class MainActivity extends AppCompatActivity { private MyReceiver02 myReceiver02; private IntentFilter intentFilter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myReceiver02 = new MyReceiver02(); intentFilter = new IntentFilter(); intentFilter.addAction("com.example.g160628_android_21_sender.send"); } //使用动态接收广播 @Override protected void onResume() { super.onResume(); //注册广播 registerReceiver(myReceiver02,intentFilter); } @Override protected void onDestroy() { super.onDestroy(); //注销广播 unregisterReceiver(myReceiver02); }}
阅读全文
0 0
- Android BroadcastReceiver实现自定义静态广播和动态广播(黏性广播)
- Android自定义广播发送者和接受者(动态-静态-黏性)
- Android 自定义广播(无序广播) BroadcastReceiver广播接受者(静态、动态)
- 静态广播、动态广播以及黏性广播的无序显示
- Android广播之注册广播(包括静态广播和动态广播的注册)源码分析
- 静态广播和动态广播
- Android自定义广播(动态、静态)
- Android 广播和BroadcastReceiver
- Android-广播BroadcastReceiver-自定义广播接受者和发送者
- Android广播(BroadcastReceiver)
- Android 广播BroadcastReceiver静态/动态注册,获取系统电量广播【开机广播】,获取网络状态广播,Timer的使用简介
- Android 之 BroadcastReceiver自定义广播
- Android中的静态系统广播和动态系统广播
- Android中的静态系统广播和动态系统广播
- Android中的静态系统广播和动态系统广播
- Android 静态广播和动态广播接收顺序
- Android静态注册广播和动态注册广播的区别
- android 动态广播与静态广播区别
- Java基础知识
- java-day01-reflect-Constructor
- Url接口测试:HttpClient模拟登录效果
- Java Socket实现简单的即时通信
- C ~ 指针的运算
- Android BroadcastReceiver实现自定义静态广播和动态广播(黏性广播)
- KMP算法(各种模板)
- leetcode之Find All Duplicates in an Array 问题
- psr 命名空间的规范
- 【Python】【并行计算】Python 多核并行计算
- POJ3734 矩阵快速幂
- 设计模式应用相关面试题目
- 【异常】Session 0x0 for server null, unexpected error, closing socket connection and attempting reconn
- 面向对象编程之常用关键字instanceof和final