19内容观察者广播
19.1内容访问者
*内容访问者:
- 1.获取提供者:getcontentResolverO;ContentResolver对象
- 2.访问内容提供者:增洲改查
ContentResolver resolver=getcontentResolverO;
uri uri=uri.parse("content://com.provider111/query");
cursor cursor=resolver.query(uri,nu11,nu11,nu11,nu11);
if(cursor!=nu11&&cursor.getcount()>0){
while(cursor.moveToNextO){
long_id=cursor.getInt(0);
string sname=cursor.getstring(1);
string sno=cursor.getstring(2);
string sex=cursor.getstring(3):
int img=cursor.getInt(4);
student student=new Student(_id,sname,sno,sex,img);
system.out.println(student);
19.2内容观察者使用
1注册内容观察者
Uri uri2=Uri. parse("content: // com.provider/delete");
/注册层内容观察者
resolver. registerContentobserver(uri2, true, new Contentobserver(new HandlerO)
/监听内容提供者数据发生改变
public void onChange(boolean selfchange)
super. onchange(selfchange);
System.out. printin数据发生改变}
}
}
};
2在内容提供者添加通知内容观察者代码
insert. update delete方法中
Uri uri2=Uri. parse("content: /com, provider/insert")
getcontext ) getcontentResolver. notifychange(uri2,nu11);
19.3什么是广播接收者
- Android系统中,内置了很多系统级别的广播,例如手机开机完成后会发送一条广播,电池电量不足时会发送一条广播等。
- AndroidBroadcastRe系统中提供了广播接收者,广播接收者的作用就是接收来自系统或其他应用程序的广播,并作出回应。
19.4广播接收者创建与注册
- 要使用广播接收者接收其他应用程序发出的广播,先要在本应用中创建广播接收者并进行注册。
创建广播接收者
public class MyBroadcastReceiver extends BroadcastReceiver
@Override
public void onReceive(Context context, Intent intent){
}}
19.5广播接收者创建与注册
注册广播有两种方式,常驻型广播与非常驻型广播。
1、注册常驻型广播
常驻型广播是当应用程序关闭后,如果接收到其他应用程序发出的广播那么该程序会自动重新启动。常驻型广播在清单文件中注册。
<action android: name=“android. orovider. TelephonySMS RECEIVED”
注册广播有两种方式,常驻型广播与非常驻型广播。2、注册非常驻型广播
非常驻型广播依赖于注册广播的组件的生命周期,例如,在 Activity中注册播接收者,当 Activity销毁后广播也随之被移除这种广播事件在代码中注册
MyBroadCastReceiver receiver new MyBroadCastReceiver(;
String action =“android. provider. Telephony.SMS_RECEIVED”
IntentFilter intentFilter new IntentFilter(action):
registerReceiver(receiver, intentFilter):
非常驻型广播可以在 onDestory方法中解除广播具体代码如下
unregisterReceiver(receiver);