关闭

广播BroadcastReceiver

标签: broadcastreceiver
116人阅读 评论(0) 收藏 举报
分类:

广播BroadcastReceiver
是安卓中的一种异步线程,可以防阻塞,分为系统定义的和自定义的。
广播接收器使用步骤:
1 定义一个广播接收器类 ex:MyBroadcastReceiver 其中有onReceiver方法
2 注册:

//在清单中,属于常驻式,activity销毁它也不会销毁  目的:长期监听 即使应用程序关闭,用处:耗电量、短信、电话……
 <receiver android:name=".MyBroadcast">
            <intent-filter>
                <action android:name="android.intent.ACTION_EDIT">
                </action>
                <category android:name="android.intent.category.mybroadcast">
                </category>
            </intent-filter>
        </receiver>
 //在代码中,一般在service里,非常驻式,随程序生命 周期变化 目的:随程序使用
        MyBroadcast myBroadcast=new MyBroadcast();
        IntentFilter intentFilter=new IntentFilter();
        intentFilter.addAction("android.intent.ACTION_EDIT");
        registerReceiver(myBroadcast,intentFilter);
//销毁
MainActivity.this.unregisterReceiver(myReceiver);

3 调用

//常驻式
 @Override
        public void onClick(View v) {

            Intent intent = new Intent();
            intent.setAction("android.intent.ACTION_EDIT");

            MainActivity.this.sendBroadcast(intent);
            Toast.makeText(MainActivity.this, "广播已发出", Toast.LENGTH_SHORT).show();
        }
//灵活式
@Override
        public void onClick(View v) {
            myReceiver = new MyReceiver();//广播接收对象
            IntentFilter filter = new IntentFilter();//过滤器条件选择
            filter.addAction(SMS_ACTION);//添加条件
            MainActivity.this.registerReceiver(myReceiver, filter);//注册
            Toast.makeText(MainActivity.this, "广播已绑定", Toast.LENGTH_SHORT).show();
        }
        //当filter中的东西与发出的消息intent一致时,接收广播执行myReceiver中的onReceiver方法
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:978次
    • 积分:3
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条