Android修行之路——Android程序设计基础(二)

2012-03-22

继续接着昨天的。

每个Activity都要在AndroidManifest.xml中注册,否则找不到这个Activity。
<activity android:name=”.Activity02”></activity>

如果希望Android应用能够对外部事件(如电话呼入时,数据网络可用时,或者到了晚上时)做出响应,可以使用IntentReceiver。IntentReceiver在感兴趣的事件发生时会使用NotificationManager通知用户,但不能生成UI。IntentReceiver在AndroidManifest.xml中注册,也可以在代码中使用Context.registerReceiver()进行注册。当IntentReceiver被触发时,应用不必对请求调用IntentReceiver,系统会在需要时启动应用。
应用可以通过使用Context.broadcastIntent()将它们自己的IntentReceiver广播给其他应用。

3. ContentProvider
Android应用能将他们的数据保存到文件和Sqlite数据库中,甚至时任何有效的设备中。将应用数据与其他应用共享时,ContentProvider就可以发挥作用了。ContentProvider类实现了一组标准的方法,能够让其他的应用保存或读取此内容提供器处理的各种数据类型。
数据时应用的核心,android默认使用Sqlite作为系统数据库。
每个应用运行在各自进程中,访问其他应用的数据,数据需要在不同的虚拟机之间传递,(正常情况下,不能读取其他应用的db文件),ContentProvider是用来解决不同应用包之间共享数据的工具。
ContentProvider一个特殊的存储数据的类型,提供一套标准的接口用来获取和操作数据。
Android提供了现成的ContentProvider:Contacts、Browser、CallLog、Settings、MediaStore。
应用通过唯一的ContentResolver界面来使用具体的某个ContentProvider,然后就可以用ContentResolver提供的方法来使用你需要的ContentProvider了。ContentResolver提供的方法包括query()、insert()、update()等。使用这些方法,还会涉及URI。可以将它理解成string形式的ContentProvider的完全路径。

读取通讯录时,需要在AndroidManifest.xml中加上权限:
<uses-permission android:name="android.permission.READ_CONTACTS" />
照着书上例子获取通讯录时,取得电话号码时出错,2.1以后可以有多个号码,所有应该要考虑进去。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值