利用sendBroadcast()实现发送广播,BroadcastReceiver 接收广播

实例Damo

效果:

发送者:


接收打印:



一个发送者,给两个接收者发送广播,一个静态获取一个动态获取

发送者:

xml文件中:

        
MainActivity中:

   
public class MainActivity extends AppCompatActivity {    private EditText et_main_content;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //获取文本输入控件        et_main_content = (EditText) findViewById(R.id.et_main_content);    }    public void send(View view){        //获得发送的内容        String content=et_main_content.getText().toString();        //发送广播        Intent intent=new Intent();        //指定广播的名字        intent.setAction("com.example.g160628_android21_sender.Hug");        //指定广播的内容        intent.putExtra("content",content);        //发送无序广播        sendBroadcast(intent);    }}
   
   接收者1号(静态获取):   

在mainfest中,与activity控件同级添加

                                                 


实例化一个MyReceiver01.java

public class MyReceiver01 extends BroadcastReceiver {    @Override    public void onReceive(Context context, Intent intent) {        //获取广播的名字        String action=intent.getAction();        if("com.example.g160628_android21_sender.Hug".equals(action)){            String content=intent.getStringExtra("content");            Log.i("test","广播接受者1号:"+content);        }    }}

接收者2号(动态获取):

MainActivity中

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        intentFilter = new IntentFilter();        intentFilter.addAction("com.example.g160628_android21_sender.Hug");    }    @Override    protected void onResume() {        super.onResume();        //注册广播        registerReceiver(myReceiver02,intentFilter) ;    }    @Override    protected void onDestroy() {        super.onDestroy();        //取消注册 注销        unregisterReceiver(myReceiver02);    }}
MyReceiver02.java

public class MyReceiver02 extends BroadcastReceiver {    @Override    public void onReceive(Context context, Intent intent) {        //获取广播的名字        String action=intent.getAction();        if("com.example.g160628_android21_sender.Hug".equals(action)){            String content=intent.getStringExtra("content");            Log.i("test","广播接受者2号:"+content);        }    }}





更多相关文章

  1. 从输入流中获取数据并以字节数组返回,这种输入流可以来自Android
  2. Android开发5:短信发送器
  3. Android通过路径获取URI(全版本)
  4. Android(安卓)资源名获取R文件id
  5. HttpPost发送JSON数据中文乱码问题。
  6. Android中的广播机制(二)----- 发送广播
  7. Android反射机制实现与原理
  8. Android(安卓)通过反射调用获取内置存储和外置sd卡根路径(适用于
  9. Android(安卓)-- Broadcast接收

随机推荐

  1. arcgis for android 学习 - (8) 空间查询
  2. android小游戏 飞机躲子弹
  3. cocos2dx出现 Fatal signal 11 (SIGSEGV)
  4. android client随机验证码生成函数
  5. android发送http请求—-URLConnection、H
  6. [必藏]Android(安卓)最棒的开源集合库
  7. Android动画开发——Animation动画效果(
  8. Android设置Button字母大小写
  9. Android(安卓)JSON
  10. Android在外接物理键盘时,如何强制调用系