`

代码注册广播

阅读更多

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广播代码生成器

    标题中的“UC广播代码生成器 51vv广播代码生成器”指的是两个不同的工具,用于创建特定的广播代码。在IT行业中,"广播代码"通常指的是应用或系统间进行通信时使用的信号或指令,特别是在Android操作系统中。UC广播...

    android 应用 源代码——广播

    - 动态注册与静态注册:BroadcastReceiver可以动态注册(在代码中进行),运行时生效;也可以静态注册(在AndroidManifest.xml中声明),即使应用未运行也能接收到广播。 2. **广播的种类** -有序广播(Ordered ...

    广播(静态注册)

    在AndroidManifest.xml中,静态注册广播接收器的代码如下: ```xml ``` 在这个例子中,我们创建了一个名为`MyStaticRegisterBroadCast`的广播接收器,并监听了`ACTION_BOOT_COMPLETED`广播,该广播在设备...

    BroadCastTest.zip 安卓动态注册广播接收器demo(含注释)

    - `MainActivity`中动态注册广播接收器的代码,可能包含`registerReceiver()`和`unregisterReceiver()`。 - 自定义广播的发送代码,可能在按钮点击事件或其他适当位置。 - 针对不同系统广播的`IntentFilter`配置...

    广播(动态注册)

    动态注册广播是在代码运行时进行的,而不是在AndroidManifest.xml文件中声明。这种方式的优点在于更加灵活,可以根据需要随时注册或注销广播接收器,同时可以避免应用在不使用时消耗过多资源。但是,动态注册的广播...

    【Android】动态注册广播接收器

    动态注册广播接收器是在代码运行时通过编程方式进行注册的,与静态注册相比,它的生命周期更短,只在应用启动或者特定条件下被注册,当应用退出或者特定条件消失后,广播接收器会被自动注销。这种注册方式适用于只在...

    Android广播实现代码

    注册广播接收者有两种方式:静态注册和动态注册。静态注册在AndroidManifest.xml中进行,这样广播接收者在应用启动时就会自动激活。例如: ```xml ``` 动态注册则在代码中完成,通常在需要时注册,不再...

    Android代码-安卓广播机制

    2. **动态注册**:在代码中进行注册,通常在需要时注册,在不需要时注销。这种方式的Receiver只能在应用运行时接收到广播,更加灵活,但需要注意的是,一旦应用退出,Receiver也会失去作用。 **IntentFilter** ...

    动态注册广播

    动态注册广播则是在代码运行时进行的,通常在需要监听特定事件时注册,当不再需要时可以取消注册,这样能够提高应用的性能和电池寿命。这种方式更灵活,可以根据应用的实际需求来控制广播接收器的生命周期。 动态...

    072集-静态和动态注册广播接收者

    **动态注册广播接收者**则是通过代码在运行时进行注册。这种方式更灵活,但也有其局限性: 1. **局部性**:只有在应用运行并且已注册广播接收者时,才能接收到广播。当应用退出或者系统内存紧张时,广播接收者可能...

    广播注册的两种方式-检查网络状态

    本主题将深入探讨两种广播注册方式:静态注册和动态注册,并以监听网络状态为例来展示它们的工作原理。 首先,静态注册是通过在AndroidManifest.xml文件中声明BroadcastReceiver来实现的。这种方式的广播接收器在...

    有序广播代码

    在本示例“有序广播代码”中,我们将深入探讨有序广播的工作原理、如何创建和发送有序广播,以及如何注册和接收有序广播。 1. **有序广播的概念** 有序广播是Android系统为了控制广播接收者的执行顺序而设计的。与...

    广播的动态注册和静态注册,一般广播和有序广播的应用练习

    有序广播则按照BroadcastReceiver在AndroidManifest.xml中声明的顺序或在代码中注册的顺序进行接收。每个接收者都有机会处理广播,前一个接收者处理完毕后才会传递到下一个。有序广播可以通过`setPriority()`方法...

    Android 广播案例(静态注册跟动态注册都有)

    本教程将深入讲解Android广播机制,包括静态注册和动态注册两种方式,适合初学者入门学习。 **一、广播的基本概念** 1. 广播Intent:广播是通过Intent对象传递的,Intent包含了发送广播的消息和数据。 2. 广播接收...

    Android中动态注册广播监听者,监听网络变化

    要动态注册广播接收器,我们需要在代码中执行以下步骤: 1. 创建BroadcastReceiver子类:首先,定义一个继承自BroadcastReceiver的类,重写onReceive()方法。在这个方法里,我们将处理接收到的广播事件,例如检查...

    广播源代码

    在安卓开发中,广播(Broadcast)是一种非常重要的组件,它允许应用程序之间相互通信,即使它们在后台运行或...初级学习者可以从提供的源代码中学习如何创建、注册和使用BroadcastReceiver,逐步熟悉安卓的广播机制。

    android注册广播方式接口回调

    动态注册是在代码运行时通过Context的registerReceiver()方法来注册广播接收器。例如: ```java IntentFilter filter = new IntentFilter(); filter.addAction("com.example.MY_ACTION"); registerReceiver(new ...

    广播接收者-2

    发送广播使用`LocalBroadcastManager.getInstance(Context).sendBroadcast(Intent)`,注册广播接收者则用`registerReceiver(BroadcastReceiver, IntentFilter)`。 3. **解除注册**: 应用程序不再需要广播接收者时...

    广播实验代码.rar

    "广播实验代码.rar"很可能包含了一些关于如何创建、注册、发送和接收广播的示例代码。 广播分为两种类型:标准广播(Normal Broadcast)和有序广播(Ordered Broadcast)。标准广播是同时发送给所有接收者,而有序...

Global site tag (gtag.js) - Google Analytics