ContentProvider,BroadCastReceiver,Service
2015-09-08 20:36
543 查看
1.内容提供ContentProvider
注意加权限
2.广播接收器Content Provider
必须注册,可在manifest中注册,也可以在代码中动态注册
新建类继承BroadCastReceiver,实现Onreveiver,以此实现接收广播
可以自己写发送广播
也可以接收系统发出的广播,写完接收器注册时写系统的action,注意加权限
3.闹钟,利用penddingIntent,以及广播接收器
取消时mAlarmManager.cancel(pendingIntent);
4.Service服务,必须注册后才能使用
写类继承Service,可以实现onCreate,onStartCommand,onDestory
代码中Intent intent=new Intent(getAppliacationcontext(),xxx.class);
startservice(intent)
可显式启动,也可隐式启动,类似Activity
服务Service运行在主线程中,耗时操作必须启动新的线程,多次启动一个服务会调用onStartCommand
对比服务,IntentService自身包含一个线程,可以生成一个消息队列,多次运行多个Intent会在队列中等待运行
注意加权限
ContentResolver resolver=getContentResolver(); Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI; Cursor cursor = resolver.query(uri, new String[]{ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME}, null, null, null); cursor.moveToFirst(); while (!cursor.isAfterLast()) { String[] names = cursor.getColumnNames(); StringBuffer buffer = new StringBuffer(); for (String name : names) { String value=cursor.getString(cursor.getColumnIndex(name)); buffer.append("字段名:"+name+" 字段值:"+value); } Log.d("联系人",""+buffer); cursor.moveToNext(); }
2.广播接收器Content Provider
必须注册,可在manifest中注册,也可以在代码中动态注册
新建类继承BroadCastReceiver,实现Onreveiver,以此实现接收广播
可以自己写发送广播
Intent intent=new Intent(); intent.setAction("com.lzjy.test1.mybroadcastreceiver");//要与注册时填写的相同才能接收 sendBroadcast(intent);
也可以接收系统发出的广播,写完接收器注册时写系统的action,注意加权限
3.闹钟,利用penddingIntent,以及广播接收器
mAlarmManager= (AlarmManager) getSystemService(ALARM_SERVICE); Intent intent=new Intent(); intent.setAction("com.lzjy.test1.mybroadcastreceiver"); PendingIntent pendingIntent=PendingIntent.getBroadcast(getApplicationContext(),0x23,intent,PendingIntent.FLAG_UPDATE_CURRENT); mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis()+5000,3000,pendingIntent);
取消时mAlarmManager.cancel(pendingIntent);
4.Service服务,必须注册后才能使用
写类继承Service,可以实现onCreate,onStartCommand,onDestory
代码中Intent intent=new Intent(getAppliacationcontext(),xxx.class);
startservice(intent)
可显式启动,也可隐式启动,类似Activity
服务Service运行在主线程中,耗时操作必须启动新的线程,多次启动一个服务会调用onStartCommand
对比服务,IntentService自身包含一个线程,可以生成一个消息队列,多次运行多个Intent会在队列中等待运行
相关文章推荐
- hive 使用php脚本来完成map/reduce
- 【ThinkPHP】ThinkPHP下载、部署,Helloworld,消除难看的index.php
- [PHP自动化-进阶]004.Snoopy VS CURL 模拟Discuz.net登陆
- 数据存储:ContentProvider获取联系人
- [Swoole入门]-Ubuntu环境下安装Swoole扩展
- 数据存储详解(四)及四大组件之一 之--->ContentProvider(内容提供者)
- ThinkPHP中通过URL重写隐藏应用的入口文件index.php的相关服务器的配置
- php 相对路径中 ./ 与../的区别
- PHP表单案例
- php表单输入验证
- 使用PHP顶替JS有趣DOM
- php的Judy Array
- ThinkPHP函数详解:M方法
- php模式设计之 中介者模式
- ThinkPHP函数详解:D方法
- ThinkPHP框架使用Smarty模板引擎
- ThinkPHP函数详解:I方法
- ThinkPHP3.2.3 使用常量BUILD_CONTROLLER_LIST无法生成Controller
- Yii Framework 开发教程(3) 为应用添加日志
- php判断数据库是否连接成功的测试例子