`

android Broadcast demo

 
阅读更多

思路是构造两个activity一个activity设置为dialog主题,然后发送广播给另一个activity。

sendActivity:

public class sendBroadcast extends Activity {
	private Button sendButton = null;
	private EditText sendEditText = null;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_send);
		sendButton = (Button) findViewById(R.id.send_bt);
		sendEditText = (EditText) findViewById(R.id.send_et_content);
		sendButton.setOnClickListener(onClickListener);
	}

	android.view.View.OnClickListener onClickListener = new OnClickListener() {

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			switch (v.getId()) {
			case R.id.send_bt:
				sendBroadcast(sendEditText.getText().toString());
				break;

			}
		}
	};

	/**
	 * 发送广播
	 * 
	 * @param string
	 */
	private void sendBroadcast(String string) {
		Intent intent = new Intent();
		Bundle bundle = new Bundle();
		bundle.putString("BroadcastContent", string);
		intent.putExtras(bundle);
		intent.setAction("Broadcast_Action");//给意图添加Action
		sendBroadcast.this.sendBroadcast(intent);
	}

}

 receiverActivity:

public class Receiver extends Activity {
private TextView showBroadcastContentTextView=null;
private Button showSendBroadcastActivityButton=null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_receiver);
		showBroadcastContentTextView=(TextView)findViewById(R.id.receiver_tv_content);
		showSendBroadcastActivityButton=(Button)findViewById(R.id.receiver_bt_showsendbroadcast);
		showSendBroadcastActivityButton.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Intent intent=new Intent(Receiver.this,sendBroadcast.class);
				Receiver.this.startActivity(intent);
			}
		});
	}

//新建广播接收器,重写接受方法
	private BroadcastReceiver broadcastReceiver=new BroadcastReceiver() {
		
		@Override
		public void onReceive(Context context, Intent intent) {
			// TODO Auto-generated method stub
	//获取广播传递过来的数据,显示在textview中。
			String contentString=intent.getStringExtra("BroadcastContent");
			Toast.makeText(Receiver.this, contentString, Toast.LENGTH_LONG).show();
			showBroadcastContentTextView.setText(contentString);
		}
	};
	@Override
	protected void onResume() {//生成activity时添加意图拦截器,拦截广播并注册广播接收器
		// TODO Auto-generated method stub
		IntentFilter intentFilter=new IntentFilter();
		intentFilter.addAction("Broadcast_Action");
		registerReceiver(broadcastReceiver, intentFilter);
		super.onResume();
	}

	@Override
	protected void onDestroy() {
		// TODO Auto-generated method stub
		if (broadcastReceiver!=null) {
			unregisterReceiver(broadcastReceiver);//销毁时接触注册
		}
		super.onDestroy();
	}
	
}

 receiver_layout:

<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"
    tools:context=".Receiver" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="BroadCastReceiver"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/receiver_tv_content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:layout_marginRight="20dp"
        android:layout_marginTop="24dp"
       />

    <Button
        android:id="@+id/receiver_bt_showsendbroadcast"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_marginRight="30dp"
        android:text="ShowSendBroadcast" />

</RelativeLayout>

 send_layout:

<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"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="19dp"
        android:layout_marginTop="23dp"
        android:text="broadCast使用"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <EditText
        android:id="@+id/send_et_content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/textView1"
        android:ems="10" >

        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/send_bt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/send_et_content"
        android:text="发送广播" />

</RelativeLayout>

 酷广播入门了。

分享到:
评论

相关推荐

    Android Broadcast demo

    Android Broadcast demo是一个示例项目,它展示了如何混合使用广播和消息来实现特定的功能。在这个项目中,开发者会发送一个广播,并通过Notification来通知用户广播是否发送成功。 首先,我们要理解Android广播的...

    BroadcastDemo

    【标题】"BroadcastDemo"揭示了这是一个关于Android广播(Broadcast)基础学习的项目。在Android系统中,广播是一种异步通信机制,允许应用程序之间发送和接收消息,即使它们并未同时运行。BroadcastReceiver是...

    broadcast和service的demo

    在Android系统中,Broadcast(广播)和Service是两个至关重要的组件,它们负责应用程序间的通信以及后台任务的执行。Broadcast主要用于在整个系统中发送和接收消息,而Service则用于在没有用户界面的情况下执行长...

    Android BroadcastReceiver Demo

    总结来说,"Android BroadcastReceiver Demo"旨在帮助开发者理解BroadcastReceiver的使用,通过创建`BearBroadcastReceiver`类,学习如何接收和处理广播,以及如何在不同情况下注册BroadcastReceiver。熟悉这些知识...

    Android Broadcast 静态注册Demo代码

    Android Broadcast 静态注册Demo代码

    BroadcastDemo:android服务的Demo

    广播演示 android服务演示

    Broadcast demo

    8. **BroadcastDemo项目结构**:这个项目可能包含一个BroadcastReceiver类,如MyBroadcastReceiver,以及一个发送广播的Activity,比如MainActivity。MainActivity中会有一个按钮或触发事件来发送广播,而...

    ScreenShotSample_android截屏_DEMO_android截屏demo_

    `ScreenShotSample_android截屏_DEMO_android截屏demo` 提供了一个Android客户端实现截屏服务的示例项目,帮助开发者了解如何在应用程序中集成截屏功能。下面将详细阐述这个DEMO涉及的核心知识点及其实现方法。 1. ...

    Android_UDPBroadcast_Demo

    在这个Android_UDPBroadcast_Demo中,我们将深入探讨如何在Android设备上进行UDP广播的收发。 首先,要实现UDP广播,我们需要使用Java的`java.net.DatagramSocket`类来创建一个UDP套接字。这个套接字可以用于发送和...

    android广播 demo

    通过分析这个BroadcastDemo项目,我们可以深入学习广播的原理和实践应用。 首先,我们需要了解广播的基本概念。在Android中,广播分为两种类型:系统广播和自定义广播。系统广播是由系统或系统服务发出的,如设备...

    android Broadcast全部功能演示

    `19.BroadcastDemo`可能是项目中的一个示例,通常包含BroadcastReceiver的实现、注册与注销代码。例如,创建一个BroadcastReceiver: ```java public class MyBroadcastReceiver extends BroadcastReceiver { @...

    Android API Demo 源码

    **Android API Demo 源码详解** Android API Demo 是一套由Google官方提供的示例代码库,旨在帮助开发者理解和学习Android平台的各种API功能。这个源码集合涵盖了从基础UI组件到高级服务和网络通信的多种技术,是...

    android蓝牙demo实现通讯功能

    这个"android蓝牙demo实现通讯功能"的项目旨在教你如何构建一个能够利用蓝牙进行数据传输的应用。在这个过程中,BroadcastReceiver(广播接收器)和Service是关键组件,它们帮助用户与后台服务进行交互。 首先,...

    Android开发的官方demo

    在Android开发领域,官方demo是开发者获取最新技术信息和学习平台特性的宝贵资源。"Android开发的官方demo"集合了谷歌发布的最新、最全面的示例代码,旨在帮助开发者理解和应用Android SDK的各种功能。这些demo通常...

    Android BroadcastReceiver实例Demo

    在Android开发中,BroadcastReceiver(广播接收者)是四大组件之一,它负责监听系统或应用程序广播事件,并在接收到...通过`Android_BroadcastReceiverDemo`,开发者可以更直观地了解和实践BroadcastReceiver的使用。

    Android源码demo.zip

    Android框架层包括Activity Manager、Content Provider、Broadcast Receiver、Service等关键组件,它们构成了Android应用程序模型。通过"demo",我们可以看到这些组件的工作原理,学习如何进行进程管理、数据共享、...

    android 手机开机启动服务DEMO

    在Android开发中,"android 手机开机启动服务DEMO"是一个常见的应用场景,它涉及到服务(Service)、广播接收器(BroadcastReceiver)以及Android系统的启动流程。这个DEMO包含了一个Activity、一个...

    android Broadcast

    在“android Broadcast Receiver demo”中,BroadcastTest很可能是演示了如何创建和注册BroadcastReceiver,以及如何处理短信接收的示例。这个示例可能会包含以下内容: 1. 定义BroadcastReceiver类,如`SmsReceiver...

    android_api_demo

    【Android_API_Demo】是一个专为Android初学者设计的实践项目,它包含了Android开发中常用API的各种示例代码,帮助开发者了解并掌握Android组件的使用方法。在这个项目中,你可以找到关于活动(Activity)、意图...

Global site tag (gtag.js) - Google Analytics