• BroadcastReceiver的两种注册方式和使用


    1.静态注册,在minifest文件中

    <receiver android:name=".BroadcastReceiverDemo" >
                <intent-filter>
                    <action android:name="com.simware.BroadcastReceiverDemo" >
                    </action>
                </intent-filter>
    </receiver>

    注册完之后即可以发送广播,使用Context.sendBroadcast()、Context.sendOrderedBroadcast()或者Context.sendStickyBroadcast()来实现

    接受广播使用代码:
    public class BroadcastReceiverDemo extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub
    String msg = intent.getStringExtra("message");
    Toast.makeText(context, msg, Toast.LENGTH_LONG).show();
    }
    }

    发送广播:
    Intent mIntent = new Intent("com.simware.BroadcastReceiverDemo");
    mIntent.putExtra("message", "hahahahaha");
    sendBroadcast(mIntent);

    2.动态注册,在代码中注册解注册

    registerReceiver(BroadcastReceiver receiver, IntentFilter filter)

    unregisterReceiver(BroadcastReceiver receiver) 

    在Activity中代码注册广播建议在:onResume()中注册(也可在onCreate里面注册);

    在Activity中代码注销广播建议在:onPause()中注销(也可在onDestory里面注销)

    如果一个BroadcastReceiver用于更新UI(User Interface),那么通常会使用这种方法进行注册,在Activity启动的时候进行注册,在Activity不可见后取消注册。不过应用内的更建议使用LocalBroadcastReceiver

    区别:

            在AndroidManifest中进行注册后,不管该应用程序是否处于活动状态,都会进行监听,比如某个程序是监听 内存 的使用情况的,当在手机上安装好后,不管该应用程序是处于什么状态,都会执行改监听方法中的内容。

            在代码中进行注册后,当应用程序关闭后,就不再进行监听。如果是在Activity中进行的注册和解注册,则生命周期是跟随该Activity的。我们知道,应用程序是否省电,决定了该应用程序的受欢迎程度,所以,对于那些没必要在程序关闭后仍然进行监听的Receiver,在代码中进行注册,无疑是一个明智的选择。

  • 相关阅读:
    信息安全系统设计基础第九周学习总结
    信息安全程序设计基础第五周学习总结
    信息安全程序设计基础第二周学习总结
    信息安全程序设计基础第三周总结
    ubuntu 13.10安装jdk 1.7 owen
    vim的配置文件 owen
    程序的思想是相通的,语言只是一种手段 owen
    如何删除开机系统选择 owen
    easybcd添加或删除启动选项 owen
    星际译王词库 owen
  • 原文地址:https://www.cnblogs.com/genggeng/p/6760513.html
Copyright © 2020-2023  润新知