android基础:广播BroadCast简单案例

运行效果

string.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">TestBroadcast</string>
    <string name="param_input">请输入发送参数</string>
    <string name="send_button">发送广播</string>
    <string name="action_settings">Settings</string>
</resources>

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.mytest.testbroadcast.MainActivity" >

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="@string/param_input"
        android:id="@+id/param_input"/>
    <Button
        android:id="@+id/send_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/param_input"
        android:text="@string/send_button"
        android:onClick="SendBroadCast" /> 

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/param_input"
        android:text="@null"
        android:id="@+id/view_result"
       />    

</RelativeLayout>

 

MainActivity 

package com.mytest.testbroadcast;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

	private EditText paramText;
	private TextView resultView;
	private final String ACTION_INTENT_TEST="com.mytest.testbroad.intent";

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		paramText = (EditText) this.findViewById(R.id.param_input);
		resultView = (TextView) this.findViewById(R.id.view_result);
	}

	/**
	 * 发送广播按钮onclick事件
	 * @param view
	 */
	public void SendBroadCast(View view){
		String param = paramText.getText().toString();

		//创建发送intent
		Intent intent = new Intent(this.ACTION_INTENT_TEST);
		//绑定参数
		intent.putExtra("user_input", param);
		//发送广播
		this.sendBroadcast(intent); 

		resultView.setText("发送广播成功,参数值为:"+param);

	}

}

 

创建广播接听对象

package com.mytest.testbroadcast;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class MyBroadCastReceiver extends BroadcastReceiver {

	@Override
	public void onReceive(Context context, Intent intent) {
		// TODO Auto-generated method stub
		String user_input = intent.getStringExtra("user_input");
		Toast.makeText(context,"接收到广播,得到参数值为"+user_input,Toast.LENGTH_SHORT).show();

	}

}

  

 AndroidMainfest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mytest.testbroadcast"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="21" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <!-- 注册广播接收类 -->
        <receiver android:name=".MyBroadCastReceiver">
            <intent-filter>
                <action android:name="com.mytest.testbroad.intent"/>
            </intent-filter>

        </receiver>
    </application>

</manifest>

  

案例实现小结:
1、定义ACTION,并建立发送Intent,调用sendBroadcast方法发送广播;
2、创建广播接收类。类要继承BroadcastReceiver,并重写onReceive方法;
3、在AndroidManifest.xml中注册广播接收对象,在intent-filter中添加ACTION。

时间: 2024-10-07 22:57:10

android基础:广播BroadCast简单案例的相关文章

android基础:broadcast广播简单实例

main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:

Android组件之BroadCast简单实践

作为Android的四大组件之一,没有理由不介绍一下BroadCast,BroadCast中文简单翻译就是广播,前阵子浙江某大学的啦啦操,广场舞的大妈,其中大妈和学生从喇叭和音响上听到的声音就是事件源,接收者就是这些大妈和学生,程序源自实践,Android中BroadCast,有事件广播者也有事件接收者,Broadcast是一种广泛运用的在应用程序之间传输信息的机制,BroadcastReceiver是对发送出来的 Broadcast进行过滤接受并响应的一类组件,也就是接收者.讲完了基本的概念,

C基础 mariadb处理简单案例

引言 MariaDB 是一款灰常不错开源数据库. 这里直接用它来解决业务问题. 业务需求: 现在数据库中表示按照天分表的. 突然我们需要按照月来处理数据. 例如输入一个玩家id, 查找这个玩家这个月内看了一件事几次. 我们先搭建一个环境. 操作系统: Linux version 4.4.0-22-generic ([email protected]41) (gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2) ) #40-Ubuntu SMP T

Android基础——广播(静态注册)

安卓版本高了就会有点问题,不能静态注册 令活动Main用来发广播,另一个接收器(不是Activity而是receiver)用来接收广播 注册文件 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.mybroadi&

Android中广播的简单使用

//注册本地广播接受者 LocalBroadcastManager broadcastManager = LocalBroadcastManager.getInstance(getActivity()); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("test"); BroadcastReceiver mReceiver = new BroadcastReceiver() { @Overr

Android基础笔记(九)- 广播

广播的概念 案例-监听短信到来并解析短信内容 案例-拦截外拨电话并设置区号 案例-SD卡状态监听 介绍一些常用的广播 发送自定义广播 有序广播和无序广播 启程!!! 广播的概念 广播的种类: 无序广播(Normal broadcasts),类似于日常使用的WIFI,由一个广播者发出信号,可以有很多接收者同时接收,并且信号无法被中断和篡改: 有序广播(Ordered broadcasts),可以有最终的接收者,并存在信号接收的优先级: 定义广播接收者的步骤: ①定义一个类,继承BroadcastR

Android 7.0 ActivityManagerService(5) 广播(Broadcast)相关流程分析

本篇博客旨在分析Android中广播相关的源码流程. 一.基础知识 广播(Broadcast)是一种Android组件间的通信方式. 从本质上来看,广播信息的载体是intent.在这种通信机制下,发送intent的对象就是广播发送方,接收intent的对象就是广播接收者. 在Android中,为广播接收者定义了一个单独的组件:BroadcastReceiver. 1 BroadcastReceiver的注册类型 在监听广播前,要将BroadcastReceiver注册到系统中. Broadcas

Android基础之五:四大组件(Broadcast Receiver)

Broadcast Receiver作为Android四大组件之一,在整个系统中广泛运用,系统中存在各种各样的广播机制,例如下载,网络等都有具体的广播接收器 广播在很大程度上简化了开发,可以通过广播监听系统状态变化,监听另一App中事件传递,可以接收当前App中不同组件,不同UI.不同线程之间的消息传递 广播的创建与使用 创建一个继承自BroadcastReceiver类的子类,重写onReceiver方法 public class MReceiver extends BroadcastRece

《Android深入透析》之广播(Broadcast)

摘要 在android中,Broadcast作为四大组件之一,被广泛的应用在android程序之间的数据传递.举一个大家都比较熟悉的例子来说明.在车上的时候大家都有收听广播的习惯,广播电台通过发送不同频率的信号,然后大家通过将各自频率调成和电台相同的频率,就可以接受到广播内容了.在android中的广播其实是和这个是一样的效果的. 1.     概述 在android中,Broadcast作为四大组件之一,被广泛的应用在android程序之间的数据传递.举一个大家都比较熟悉的例子来说明.在车上的