`
chenjie19891104
  • 浏览: 12396 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

Broadcast 实例

阅读更多
package demo.broadcast;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

/**
 * 实现一个广播和广播接收器比较简单
 * 一、构建Intent对象
 * 二、调用sendBroadcast()发出一个系统级别的广播
 * 三、事件的接收是通过自定义一个类,通过继承BroadcastReceiver,并实现其onReceive()方法来实现的
 * 四、注册你定义的广播接收器,在AndroidManifest.xml中注册或者在代码中注册
 * @author Administrator
 *
 */
public class MainActivity extends Activity {
    
	//首先需要一个Action常量,任意了啦,就是相当于一个唯一的标识符
	//这里关于Action的理解,可以这样:
	//Action就相当于一种符号。比如几个军队在作战,其中A军队发出一种信号,
	//其中B军队和A军队是一方(就是B军队可以正确识别这种信号),所以B军队看到
	//信号后,对信号进行解析,根据信号的指示,执行任务。而另一方的C军队,不知道这种信号
	//所以,只能置之不理。
	//这里,信号就相当于Action,起到过滤的作用。军队B就相当于该Action的一个接受者,是一个广播接收者
	private static final String ACTION_DEMO_BROADCAST = "demo.broadcast.action.ACTION_DEMO_BROADCAST";
	
	private Button button;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        button = (Button)this.findViewById(R.id.btn_demo);
        
        button.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				Intent intent = new Intent();
				//关于Action的理解可以看上面
				intent.setAction(ACTION_DEMO_BROADCAST);
				intent.putExtra("msg", "我发送了广播,注意查收!");
				MainActivity.this.sendBroadcast(intent);
			}
		});
    }
}
 
package demo.broadcast;

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

/**
 * 自定义一个广播接收器
 * 在onReceive()方法中处理
 * @author Administrator
 *
 */
public class DemoReceiver extends BroadcastReceiver {

	@Override
	public void onReceive(Context context, Intent intent) {
		//从Intent中接收信息
		String msg = intent.getStringExtra("msg");
		Toast.makeText(context, "新消息:"+msg, Toast.LENGTH_LONG).show();
	}

}
 
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="demo.broadcast"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <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="DemoReceiver">
			<intent-filter>
				<action android:name="demo.broadcast.action.ACTION_DEMO_BROADCAST" />
				<category android:name = "android.intent.category.LAUNCHER" />
			</intent-filter>
		</receiver>
    </application>
    <uses-sdk android:minSdkVersion="8" />

</manifest> 
 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
    
<Button
	android:id="@+id/btn_demo" 
	android:layout_width="fill_parent" 
	android:layout_height="wrap_content" 
	android:text="测试广播事件" />
</LinearLayout>
 
分享到:
评论

相关推荐

    android--broadcast实例

    BroadcastReceiver(广播接收器)是接收广播的关键类,让我们深入探讨一下Broadcast实例在Android开发中的应用及其相关知识点。 首先,BroadcastReceiver的工作原理是基于Intent的发布和订阅模式。当一个广播意图被...

    android broadcast实例

    本实例将深入探讨如何在Android中使用`sendBroadcast`, `sendOrderedBroadcast`以及`sendStickyBroadcast`三种方法来发送广播。 一、sendBroadcast `sendBroadcast(Intent intent)`是最常见的方式,用于发送一个非...

    broadcast实例工程

    在"broadcast实例工程"中,我们通常会看到如何创建、注册和使用BroadcastReceiver来实现不同组件间的通信。 在"android broadcast"这一主题下,我们可以深入探讨以下几个关键知识点: 1. **BroadcastReceiver的...

    Android Broadcast 广播机制 实例

    下面我们将深入探讨Android Broadcast的工作原理、类型、注册方式以及如何在实际开发中创建和使用Broadcast实例。 一、Broadcast机制简介 Broadcast广播是Android系统中的一种全局通知机制,用于在整个系统中传播...

    broadcast_Android 广播机制broadcast用法实例.rar

    在这个“broadcast_Android 广播机制broadcast用法实例.rar”压缩包中,我们很可能会找到关于如何使用BroadcastReceiver的示例代码和教程。 首先,广播分为两种类型:显式广播和隐式广播。显式广播是直接指定接收者...

    broadcast功能大集合

    当广播到达时,系统会创建BroadcastReceiver实例并调用onReceive()方法,处理完广播后,BroadcastReceiver即被销毁。因此,所有广播的处理逻辑应在onReceive()方法内完成,因为它不会多次调用,且不能进行耗时操作,...

    Broadcast知识点总结

    每次广播触发时,系统会创建BroadcastReceiver实例并调用`onReceive()`方法。如果`onReceive()`在10秒内未完成执行,Android系统会认为广播接收者阻塞了,可能导致系统性能问题。 7. **拦截和处理广播**: 对于...

    Android实例四:BroadCast_Receiver

    这篇博客"Android实例四:BroadCast_Receiver"将深入探讨如何在实际项目中使用BroadcastReceiver。 首先,我们需要了解BroadcastReceiver的基本概念。BroadcastReceiver是一个抽象类,用于接收并处理系统或应用广播...

    Broadcast示例代码

    - **静态注册**:在AndroidManifest.xml中声明BroadcastReceiver,这样系统在启动时就会自动创建Receiver实例,广播始终有效,但可能会增加内存占用。 - **动态注册**:在代码中注册BroadcastReceiver,通常在需要...

    Android Broadcast 静态注册Demo代码

    Android Broadcast 静态注册Demo代码

    udpbroadcast.zip

    创建一个`QUdpSocket`实例后,我们可以调用`bind()`函数将其绑定到特定的IP地址和端口,这样就可以接收发送到该地址和端口的数据报。同时,`writeDatagram()`函数用于向指定的IP地址和端口发送数据报。 接下来,`...

    动态加载广播broadcast.

    然后,在需要接收广播的活动或服务中,通过`registerReceiver()`方法进行注册,传入创建的广播接收器实例和感兴趣的IntentFilter。例如: ```java IntentFilter filter = new IntentFilter(); filter.addAction(...

    Android 广播机制broadcast用法实例

    这个例子主要研究Android broadcast广播机制的实现,以一个电池监测及广播通知为例,介绍了实现broadcast的过程:大致的思路是:注册一个系统 BroadcastReceiver,作为访问电池计量之用,如果捕捉到的action是ACTION...

    Android之Broadcast, BroadcastReceiver(广播)

    - 动态注册:在运行时通过Context的registerReceiver()方法进行注册,需要传入BroadcastReceiver实例和一个IntentFilter对象。动态注册的BroadcastReceiver仅在注册后有效,当应用退出或者unregisterReceiver()后,...

    android broadcast的使用

    静态注册是在AndroidManifest.xml文件中进行,系统启动时就会创建Broadcast Receiver实例;动态注册则在代码运行时完成,需要手动创建和注册,优点是可以随时注册和注销,但缺点是应用退出后就无法接收到广播。 接...

    Android UDP broadcast Example

    首先,创建一个DatagramSocket实例,并绑定到特定的端口上。然后,创建一个`java.net.DatagramPacket`对象,用于存储接收到的数据。通过调用DatagramSocket的`receive()`方法,可以接收来自其他设备的UDP数据包。 ...

    获取局域网中SQL的实例名

    udpClient.Connect(IPAddress.Broadcast, 1434); byte[] requestBytes = Encoding.ASCII.GetBytes("0100000000000000"); udpClient.Send(requestBytes, requestBytes.Length); IPEndPoint remoteEndPoint = ...

    VC++ 只运行一个程序实例

    SendMessage(HWND_BROADCAST, WM_COPYDATA, (WPARAM)hInstance, (LPARAM)&cds); ``` 5. **接收并处理消息**:在已运行的程序中,我们需要监听`WM_COPYDATA`消息,根据接收到的数据做出相应的处理。 ```cpp ...

    Android创意实例详解书籍源码

    在这些源码中,你可以看到如何与Android SDK交互,包括Activity、Intent、Broadcast Receiver、Service等核心组件的使用。 其次,Android创意实例主要体现在UI设计和用户体验上。源码中可能包含各种自定义View的...

    VC网络编程实例_3

    (1)基本网络编程实例 Winsock实现网络聊天室【\chap1\ChatRoom(Winsock)】 ...网络多播程序【\Appendix\BroadCast】 界面美观的文字聊天程序【\Appendix\Chat】 语音电话【\Appendix\PhoneCall】

Global site tag (gtag.js) - Google Analytics