android广播(内部类)使用
来源:互联网 发布:linux 文件读写 c程序 编辑:程序博客网 时间:2024/06/09 21:07
1.广播定义在一个单独的文件中
源码:
- public class MessageReceiver extends BroadcastReceiver{
- @Override
- public void onReceive(Context context, Intent intent) {
- // TODO Auto-generated method stub
- if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){
- }
- }
- }
在Manifest中注册:
- <receiver android:name=".MessageReceiver">
- <intent-filter>
- <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
- </intent-filter>
- </receiver>
使用代码注册:
- //生成广播处理
- MessageReceiver smsBroadCastReceiver = new MessageReceiver ();
- //实例化过滤器并设置要过滤的广播
- IntentFilter intentFilter = new IntentFilter();
- intentFilter.addAction("android.provider.Telephony.SMS_RECEIVED");
- //注册广播
- this.registerReceiver(smsBroadCastReceiver, intentFilter);
注销广播:
- unregisterReceiver(smsBroadCastReceiver);
2.广播是内部类
- public class SettingForSMS extends PreferenceActivity{
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- addPreferencesFromResource(R.layout.sms_setting);
- }
- public static class MessageChangeReceiver extends BroadcastReceiver {
- @Override
- public void onReceive(Context context, Intent intent) {
- // TODO Auto-generated method stub
- Log.i(tag, "onReceive");
- }
- }
- }
注意定义的过程中必须声明为static,不然会找不到
在Manifest中注册:
- <receiver android:name=".SettingForSMS$MessageChangeReceiver">
- <intent-filter>
- <action android:name="com.ginwave.message_changed"/>
- </intent-filter>
- </receiver>
注意内部类使用$符号而不是.,使用.会出现类找不到异常
在程序内注册,register是放在onCreate中,unregister是放在onDestroy中。
- smsBroadCastReceiver = new MessageChangeReceiver ();
- //实例化过滤器并设置要过滤的广播
- IntentFilter intentFilter = new IntentFilter();
- intentFilter.addAction("com.ginwave.message_changed");
- //注册广播
- this.registerReceiver(smsBroadCastReceiver, intentFilter);
- unregisterReceiver(smsBroadCastReceiver);
希望以后使用的时候方便点~~
0 0
- android广播(内部类)使用
- Android广播(内部类)使用
- android广播(内部类)使用
- android广播(内部类)使用
- android广播(内部类)使用
- android广播(内部类)使用
- Android 广播 动、静态注册广播(作为内部类使用)
- Android静态注册内部类广播BroadcastReceiver
- Android静态注册内部类广播BroadcastReceiver
- android 广播 BroadcastReciver写成内部类问题
- android 广播 动态/静态 内部类形式
- android -广播是内部类注册注意事项
- Android静态注册内部类广播BroadcastReceiver
- Android静态注册内部类广播BroadcastReceiver
- Android静态注册内部类广播BroadcastReceiver
- 内部类广播
- Android - Broadcast receiver 作为内部类接受广播
- Android 内部类广播错误.MainActivity$MyReceiver; no empty constructor
- JVM系列四:生产环境参数实例及分析【生产环境实例增加中】
- 顺序存储结构和链式存储结构的选择
- 内核发出的sigkill信号
- javascript 中return的作用
- JVM系列五:JVM监测&工具[整理中]
- android广播(内部类)使用
- 关于android sdk foloder can no longer be inside the application folder 这问题在mac版本上android studio的问题
- 异常处理示例
- 【ROM修改教程】添加高级电源重启菜单(安卓4.0.4官方ROM)
- Catalan可以看懂的代码(网上的都看不懂)
- php 实现时间任务代码
- httpclient源码分析-如何重用连接
- 人丑就该多读书吗?
- 判断DataTable为空