BroadcastReceiver广播接收者(一)——利用代码注册广播接收者

MainActivity如下:

package cc.testbroadcasta;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.content.IntentFilter;
/**
 * Demo描述:
 * 在代码中注册广播接收者
 * 1 在onCreate()中注册广播接收者
 * 2 在onDestroy()中取消注册广播接收者
 */
public class MainActivity extends Activity {
    private BroadcastReceiverTest mBroadcastReceiverTest;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		//注册一个广播接收者
		registerAReceiver();
		//发送一个广播
		sendABroadcast();
	}

	private void registerAReceiver(){
		mBroadcastReceiverTest=new BroadcastReceiverTest();
		//为广播接收者设置IntentFilter
		IntentFilter intentFilter=new IntentFilter();
		intentFilter.addAction("cc.test");
		registerReceiver(mBroadcastReceiverTest, intentFilter);
	}

	private void sendABroadcast(){
		Intent intent = new Intent();
		// 设置Action
		intent.setAction("cc.test");
		// 携带数据
		intent.putExtra("name", "周星驰");
		intent.putExtra("number", 9527);
		// 发送广播
		sendBroadcast(intent);
	}

	@Override
	protected void onDestroy() {
		super.onDestroy();
		//取消广播接收者的注册
		if (mBroadcastReceiverTest!=null) {
			unregisterReceiver(mBroadcastReceiverTest);
		}
	}

}

BroadcastReceiverTest如下:

package cc.testbroadcasta;

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

public class BroadcastReceiverTest extends BroadcastReceiver {

	@Override
	public void onReceive(Context context, Intent intent) {
          String name=intent.getStringExtra("name");
          int number=intent.getIntExtra("number", 0);
          System.out.println("接收到广播 name="+name+",number="+number);
	}

	public static void main(String[] args) {

	}

}

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"
   >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="在代码中注册广播接收者"
        android:layout_centerInParent="true"/>

</RelativeLayout>



时间: 2024-11-08 21:37:59

BroadcastReceiver广播接收者(一)——利用代码注册广播接收者的相关文章

BroadcastReceiver广播接收者(二)——利用AndroidManifest.xml注册广播接收者

MainActivity如下: package cc.testbroadcasta; import android.os.Bundle; import android.app.Activity; import android.content.Intent; /** * Demo描述: * 利用AndroidManifest.xml注册广播接收者 */ public class MainActivity extends Activity { @Override protected void onC

BroadcastReceiver广播接收者(三)——利用广播在应用程序之间传递数据

 TestBroadcastA应用如下 MainActivity如下: package cc.testbroadcasta; import android.os.Bundle; import android.app.Activity; /** * Demo描述: * 利用广播在应用程序之间传递数据 * * TestBroadcastA应用中注册一个广播接收者. * TestBroadcastB应用中发出一个广播 */ public class MainActivity extends Act

Android 注册广播方式及优缺点

 在android下,要想接受广播信息,那么这个广播接收器就得我们自己来实现了,我们可以继承BroadcastReceiver,就可以有一个广播接收器了.有个接收器还不够,我们还得重写BroadcastReceiver里面的onReceiver方法,然后注册广播 有两种方法,一种是代码动态注册: //生成广播处理  smsBroadCastReceiver = new SmsBroadCastReceiver();  //实例化过滤器并设置要过滤的广播 IntentFilter intentFi

Android注册广播的两种方法分析_Android

本文实例分析了Android注册广播的两种方法.分享给大家供大家参考,具体如下: 1. 在AndroidManifest.xml文件中注册. 好处:一旦应用程序被安装到手机里,BroadCast Receiver就开始生效.无论应用程序进程是否运行,运用程序是否在开启状态下都可以接受到广播事件. <receiver android:name=".receiver.SMSReceiver" > <intent-filter android:priority="

android系统-android中一个桌面上的一个widget就是一个广播接收者吗,还是一个广播接收器

问题描述 android中一个桌面上的一个widget就是一个广播接收者吗,还是一个广播接收器 android中一个桌面上的一个widget就是一个广播接收者吗,还是一个广播接收器 我觉得是一个广播接收者,因为它是一个对象 解决方案 广播接收者和广播接收器难道不是同一概念么....AppWidgetProvider类,继承自BroadcastReceiver,可以接收并处理广播事件

注册广播接收器问题。

问题描述 1:在打开的聊天界面 如何接收到对方发来的消息2:下面这种注册方法能否写入AndroidManifest.xml文件 使用静态注册方式.3:下面这种动态注册 是不是写在聊天界面的activity中的onResume() 里? //只有注册了广播才能接收到新消息,目前离线消息,在线消息都是走接收消息的广播(离线消息目前无法监听,在登录以后,接收消息广播会执行一次拿到所有的离线消息)NewMessageBroadcastReceiver msgReceiver = new NewMessa

Android注册广播的两种方法分析

本文实例分析了Android注册广播的两种方法.分享给大家供大家参考,具体如下: 1. 在AndroidManifest.xml文件中注册. 好处:一旦应用程序被安装到手机里,BroadCast Receiver就开始生效.无论应用程序进程是否运行,运用程序是否在开启状态下都可以接受到广播事件. <receiver android:name=".receiver.SMSReceiver" > <intent-filter android:priority="

android-Android中能在一个自定义view中注册广播并发出广播吗

问题描述 Android中能在一个自定义view中注册广播并发出广播吗 我写的一个Android程序中自定义了一个view,自己画了一个钟表,那个钟表可以调时间,因为调时间的过程中数据是不停的变化的,我想让这变化不停的时间显示在自定义view底下的TextView,虽然我写了一个get方法得到时间并显示在textView中,到get方法只执行了一次,所以并没有变化更新效果,所以我想法是在自定义view中发送广播,只要是表在调整就一直发送最新数据,可是好广播一直报错,是不是广播只能在activit

activity传数据-新手学Android的广播,为什么接收不到广播数据,急急急急

问题描述 新手学Android的广播,为什么接收不到广播数据,急急急急 我是动态注册的 ,代码如下: public class LoginActivity extends Activity implements OnClickListener{ public static String ACTION= "ok"; private Button button; @Override protected void onCreate(Bundle savedInstanceState) { s