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

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

public class MainActivity extends Activity {

    //定义一个过滤器;
    private IntentFilter intentFilter;

    //定义一个广播监听器;
    private NetChangReceiver netChangReceiver;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_main);

        //实例化过滤器;
        intentFilter = new IntentFilter();
        //添加过滤的Action值;
        intentFilter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);

        //实例化广播监听器;
        netChangReceiver = new NetChangReceiver();

        //将广播监听器和过滤器注册在一起;
        registerReceiver(netChangReceiver, intentFilter);
    }

    @Override
    protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();

        //销毁Activity时取消注册广播监听器;
        unregisterReceiver(netChangReceiver);
    }

    //创建一个继承BroadcastReceiver的广播监听器;
    class NetChangReceiver extends BroadcastReceiver {

        //重写onReceive方法,该方法的实体为,接收到广播后的执行代码;
        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub
            Log.i("MainActivity", "飞行模式启动~");

            Toast.makeText(MainActivity.this, "飞行模式启动~", Toast.LENGTH_SHORT)
                    .show();
        }
    }
}

  

时间: 2024-08-04 11:03:32

【Android】动态注册广播接收器的相关文章

Android -- 简单广播接收与发送(2)--动态注册广播接收器

1. 效果图 2. 代码 1. 布局文件 <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/btn1" > </Button> <Button android:id="@+id/bu

android动态注册广播监听服务demo

服务类,一定要在清单文件中注册 public class lightService extends Service { private boolean ifrun = false; @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } @Override public void onCreate() { super.onCreate(); System.

动态注册广播接收器,监听网络变化

1:NetChangeReceiver.java public class NetChangeReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)

Android应用程序注册广播接收器(registerReceiver)的过程分析

前 面我们介绍了Android系统的广播机制,从本质来说,它是一种消息订阅/发布机制,因此,使用这种消息驱动模型的第一步便是订阅消息:而对 Android应用程序来说,订阅消息其实就是注册广播接收器,本文将探讨Android应用程序是如何注册广播接收器以及把广播接收器注册到哪里去的. 在Android的广播机制中,ActivityManagerService扮演着广播中心的角色,负责系统中所有广播的注册和发布操作,因 此,Android应用程序注册广播接收器的过程就把是广播接收器注册到Activ

[Android]三种广播接收器1

/************ 动态注册 ************/ ActivityMain.java  package home.lee.broadcastreceiver; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.Inten

动态注册广播和静态注册广播的区别

广播接收器注册一共有两种形式 : 静态注册和动态注册. 两者及其接收广播的区别: 1.动态注册的广播永远要快于静态注册的广播,不管静态注册的优先级设置的多高,不管动态注册的优先级有多低. 2.动态注册广播不是常驻型广播,也就是说广播跟随activity的生命周期.注意: 在activity结束前,移除广播接收器. 静态注册是常驻型,也就是说即使app已经退出,主要有相应的广播发出,依然可以接收到,但此种描述自Android 3.1开始有可能不再成立. 详情请关注 http://www.cnblo

静态/动态注册广播的区别

广播接收器注册一共有两种形式 : 静态注册和动态注册. 两者及其接收广播的区别: 1.动态注册的广播永远要快于静态注册的广播,不管静态注册的优先级设置的多高,不管动态注册的优先级有多低>\ 2.动态注册广播不是常驻型广播,也就是说广播跟随activity的生命周期.注意: 在activity结束前,移除广播接收器. 静态注册是常驻型,也就是说当应用程序关闭后,如果有信息广播来,程序也会被系统调用自动运行. 3.在同一个优先级下,谁先启动的快,谁将先接收到广播. 动态注册代码: UpdateBro

动态注册广播,监听网络状态变化,判断网络模式

注册广播监听网络连接和断开状态的变化,判断网络连接模式: private ConnectivityManager mConnectivityManager; private NetworkInfo netInfo; /////////////监听网络状态变化的广播接收器 private BroadcastReceiver myNetReceiver = new BroadcastReceiver() { @Override public void onReceive(Context contex

利用服务动态注册广播

在ContextWrapper类中有一个方法registerReceiver(BroadcastReceiver receiver, IntentFilter filter) 该方法可以实现动态注册广播接受者 receiver = new ScreemRecevicer(); IntentFilter filter = new IntentFilter(); filter.addAction("android.intent.action.SCREEN_OFF"); filter.add