BroadcastReceiver
- Manifest文件中加入receiver的声明(AS会自动做)
- sendBroadcast方法发送广播,BroadcastReceiver定义中onReceive方法接收到广播时被调用
- 动态注册和注销BroadcastReceiver
a.注册registerReceiver(receiver, new IntentFilter(MyReceiver.ACTION);这里的MyReceiver.ACTION是自定义receiver类中定义的静态字符串常量(packagename.action.intent.MyReceiver)
b.注销unregisterReceiver(receiver);
c.使用动态注册和注销receiver的时,发送广播消息的Intent对象需要使用Intent i=new Intent(MyReceiver.ACTION)的隐式Intent的方式- 优先级
a. Manifest文件中receiver定义处指定intent-filter的priority(数字越小,优先级越低);
b. onReceive方法中调用abortBroadcast();后续低优先级receiver无法接收到消息;但是发送消息是必须调用sendOrderedBroadcast(intent, null)方法发送消息
日志API
Log.e(TAG, “错误信息”);
Log.w(TAG, “警告信息”);
Log.i(TAG, “普通信息”);
Log.d(TAG, “调试信息”);
Log.v(TAG, “无用信息”);
日志分类
通过Android Monitor里面配置自己的过滤器
添加权限
Manifest文件中添加uses-permission标签
权限检查
- 代码检查
int checkResult = context.checkCallingOrSelfPermission(PERMISSION_SAY_HELLO);
if(checkResult != PackageManager.PERMISSION_GRANTED) {
throw new SecurityException("执行sayHello需要权限");
}
System.out.println("hello");
Manifest文件中要使用permission标签声明自己定义的权限,并且要使用uses-permission标签添加权限
2.配置检查
Manifest文件中使用permission标签声明定义的权限,在需要检查该权限的的activity标签上加入android:permission属性;如果是跨应用还需要在使用该权限的应用的Manifest里使用uses-permission来添加权限