package com.example.broadcast001;
import android.os.Bundle;
import android.app.Activity;
import android.content.ContextWrapper;
import android.content.Intent;
import android.content.IntentFilter;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//为哪个广播 注册什么样的过滤器????
MyReceiver myReceiver = new MyReceiver();//广播
IntentFilter intentFilter = new IntentFilter("ACTION");//过滤器
//IntentFilter intentFilter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
//intentFilter.addAction(action);
//intentFilter.addCategory(category);
//intentFilter.addDataType(type);
//注册广播的方法在ContextWrapper中,所以要在activity里注册
registerReceiver(myReceiver, intentFilter);
findViewById(R.id.button1).setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
//发广播就这样
Intent intent=new Intent("ACTION");
//IntentFilter intentFilter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
sendBroadcast(intent);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
////////////////////////////////////////////////////////////////////////////广播类
package com.example.broadcast001;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.widget.Toast;
public class MyReceiver extends BroadcastReceiver
{
public MyReceiver()
{
}
@Override
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();
Toast.makeText(context, action, Toast.LENGTH_LONG).show();
}
}
/////////////////////////////////////manifest.xml注册广播
<!--广播注册-->
<manifest>
<receiver android:name=".SmsBroadCastReceiver">
<intent-filter android:priority="2000">
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
</application>
<uses-sdk android:minSdkVersion="7" />
<!-- 权限申请 -->
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
</manifest>
两种注册类型的区别是:
1)第一种不是常驻型广播,也就是说广播跟随程序的生命周期(代码注册广播)。
2)第二种是常驻型,也就是说当应用程序关闭后,如果有信息广播来,程序也会被系统调用自动运行(manifest.xml中注册广播)。
相关推荐
当我们说到“代码中注册广播接收器”,这意味着不是在AndroidManifest.xml文件中静态声明广播接收器,而是在运行时通过代码动态注册。这种方式提供了更大的灵活性,因为可以在需要时注册,不需要时注销,有助于降低...
标题中的“UC广播代码生成器 51vv广播代码生成器”指的是两个不同的工具,用于创建特定的广播代码。在IT行业中,"广播代码"通常指的是应用或系统间进行通信时使用的信号或指令,特别是在Android操作系统中。UC广播...
- 动态注册与静态注册:BroadcastReceiver可以动态注册(在代码中进行),运行时生效;也可以静态注册(在AndroidManifest.xml中声明),即使应用未运行也能接收到广播。 2. **广播的种类** -有序广播(Ordered ...
在AndroidManifest.xml中,静态注册广播接收器的代码如下: ```xml ``` 在这个例子中,我们创建了一个名为`MyStaticRegisterBroadCast`的广播接收器,并监听了`ACTION_BOOT_COMPLETED`广播,该广播在设备...
- `MainActivity`中动态注册广播接收器的代码,可能包含`registerReceiver()`和`unregisterReceiver()`。 - 自定义广播的发送代码,可能在按钮点击事件或其他适当位置。 - 针对不同系统广播的`IntentFilter`配置...
动态注册广播是在代码运行时进行的,而不是在AndroidManifest.xml文件中声明。这种方式的优点在于更加灵活,可以根据需要随时注册或注销广播接收器,同时可以避免应用在不使用时消耗过多资源。但是,动态注册的广播...
动态注册广播接收器是在代码运行时通过编程方式进行注册的,与静态注册相比,它的生命周期更短,只在应用启动或者特定条件下被注册,当应用退出或者特定条件消失后,广播接收器会被自动注销。这种注册方式适用于只在...
注册广播接收者有两种方式:静态注册和动态注册。静态注册在AndroidManifest.xml中进行,这样广播接收者在应用启动时就会自动激活。例如: ```xml ``` 动态注册则在代码中完成,通常在需要时注册,不再...
2. **动态注册**:在代码中进行注册,通常在需要时注册,在不需要时注销。这种方式的Receiver只能在应用运行时接收到广播,更加灵活,但需要注意的是,一旦应用退出,Receiver也会失去作用。 **IntentFilter** ...
本主题将深入探讨两种广播注册方式:静态注册和动态注册,并以监听网络状态为例来展示它们的工作原理。 首先,静态注册是通过在AndroidManifest.xml文件中声明BroadcastReceiver来实现的。这种方式的广播接收器在...
动态注册广播则是在代码运行时进行的,通常在需要监听特定事件时注册,当不再需要时可以取消注册,这样能够提高应用的性能和电池寿命。这种方式更灵活,可以根据应用的实际需求来控制广播接收器的生命周期。 动态...
**动态注册广播接收者**则是通过代码在运行时进行注册。这种方式更灵活,但也有其局限性: 1. **局部性**:只有在应用运行并且已注册广播接收者时,才能接收到广播。当应用退出或者系统内存紧张时,广播接收者可能...
在本示例“有序广播代码”中,我们将深入探讨有序广播的工作原理、如何创建和发送有序广播,以及如何注册和接收有序广播。 1. **有序广播的概念** 有序广播是Android系统为了控制广播接收者的执行顺序而设计的。与...
有序广播则按照BroadcastReceiver在AndroidManifest.xml中声明的顺序或在代码中注册的顺序进行接收。每个接收者都有机会处理广播,前一个接收者处理完毕后才会传递到下一个。有序广播可以通过`setPriority()`方法...
本教程将深入讲解Android广播机制,包括静态注册和动态注册两种方式,适合初学者入门学习。 **一、广播的基本概念** 1. 广播Intent:广播是通过Intent对象传递的,Intent包含了发送广播的消息和数据。 2. 广播接收...
要动态注册广播接收器,我们需要在代码中执行以下步骤: 1. 创建BroadcastReceiver子类:首先,定义一个继承自BroadcastReceiver的类,重写onReceive()方法。在这个方法里,我们将处理接收到的广播事件,例如检查...
在安卓开发中,广播(Broadcast)是一种非常重要的组件,它允许应用程序之间相互通信,即使它们在后台运行或...初级学习者可以从提供的源代码中学习如何创建、注册和使用BroadcastReceiver,逐步熟悉安卓的广播机制。
动态注册是在代码运行时通过Context的registerReceiver()方法来注册广播接收器。例如: ```java IntentFilter filter = new IntentFilter(); filter.addAction("com.example.MY_ACTION"); registerReceiver(new ...
发送广播使用`LocalBroadcastManager.getInstance(Context).sendBroadcast(Intent)`,注册广播接收者则用`registerReceiver(BroadcastReceiver, IntentFilter)`。 3. **解除注册**: 应用程序不再需要广播接收者时...
"广播实验代码.rar"很可能包含了一些关于如何创建、注册、发送和接收广播的示例代码。 广播分为两种类型:标准广播(Normal Broadcast)和有序广播(Ordered Broadcast)。标准广播是同时发送给所有接收者,而有序...