ContentProvider,BroadCastReceiver,Service

1.内容提供ContentProvider
注意加权限

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会在队列中等待运行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值