Android广播入门,单个手机上App之间的发送接收

在这里给大家分享安卓四大组件之一Broadcastreceiver(广播)的学习,在这里今天做一个同一部手机上APP之间的广播发送和接收.


首先第一个App用于发送广播出去给其余的App,布局采用一个文本域和一个button按钮,当我点击按钮时进行发送,代码如下:

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="请输入问候的语句"
        android:id="@+id/main_text_edit"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_gravity="center"
        android:layout_height="wrap_content"
        android:text="发送"
        android:onClick="send"
        />
当我点击发送的时候调用当前布局Activity的send方法进行广播的发送,代码如下:
    private Intent intent;
    private EditText main_text_edit;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取文本域控件
        main_text_edit = (EditText) findViewById(R.id.main_text_edit);
        //实力化
        intent = new Intent();
        //给Intent设置一个特定的广播名字(专业术语是给Activity设置一个行为);
        intent.setAction("com.example.android_broadcastreceiver.01");

    }



    public void send(View view){
        //获取文本域控件的值
        String data=main_text_edit.getText().toString();
        //使用Intent携带
        intent.putExtra("data",data);
        //发送广播
        sendBroadcast(intent);
    }
那么发送广播就是这样,现在来写一个接收广播的App,由于写一个简单点的接收App布局和MainActivity都是创建的那样不做改动,只是增加一个类继承BroadcastReceiver类,然后重写它的一个onReceive方法,这个方法就是接收广播,代码如下:

 public void onReceive(Context context, Intent intent) {
        if("com.example.android_broadcastreceiver.01".equals(intent.getAction())){
            String data=intent.getStringExtra("data");
            Log.i("text",data);
        }
    }
在这里的判断中字符串的值是在第一个发送广播App中Intent行为的值也就是广播的名字,当你名字等于我接收广播的名字时那么就会进入判断。

在这里要注意一下Android清单文件中要增加几行代码,如下:

 <receiver android:name=".MyReceiver">
        <intent-filter>
            <action android:name="com.example.android_broadcastreceiver.01"></action>
        </intent-filter>
    </receiver>
这代码加在application标签中,android:name=我们自己定义继承BroadcastReceiver的类名。


今天分享的广播就是这样了,注意只能在同部手机上App之间的广播传递。

 


  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值